feat(toml): TOML 1.1 parse support (#16415)

### What does this PR try to resolve?

Support
- multi-line inline tables
- trailing commas on inline tables
- `\e` string escape character
- `\xHH` string escape character
- Optional seconds in times (sets to `0`)

Anyone using these features will raise their development MSRV. The
published `Cargo.toml` file will still be compatible with old TOML
parsers and so old Cargos. If `toml_datetime` gains the ability to track
whether seconds were optional (will be a breaking change), then that
might change though that would only apply to `package.metadata` as we
don't make use of times in Cargo.

### How to test and review this PR?
diff --git a/Cargo.lock b/Cargo.lock
index 1a924cc..32c82c7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4178,9 +4178,9 @@
 
 [[package]]
 name = "serde_spanned"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392"
+checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776"
 dependencies = [
  "serde_core",
 ]
@@ -4650,9 +4650,9 @@
 
 [[package]]
 name = "toml"
-version = "0.9.8"
+version = "0.9.10+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8"
+checksum = "0825052159284a1a8b4d6c0c86cbc801f2da5afd2b225fa548c72f2e74002f48"
 dependencies = [
  "indexmap",
  "serde_core",
@@ -4665,18 +4665,18 @@
 
 [[package]]
 name = "toml_datetime"
-version = "0.7.3"
+version = "0.7.5+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
+checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
 dependencies = [
  "serde_core",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.23.7"
+version = "0.24.0+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
+checksum = "8c740b185920170a6d9191122cafef7010bd6270a3824594bff6784c04d7f09e"
 dependencies = [
  "indexmap",
  "serde_core",
@@ -4689,18 +4689,18 @@
 
 [[package]]
 name = "toml_parser"
-version = "1.0.4"
+version = "1.0.6+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
+checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
 dependencies = [
  "winnow",
 ]
 
 [[package]]
 name = "toml_writer"
-version = "1.0.4"
+version = "1.0.6+spec-1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2"
+checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
 
 [[package]]
 name = "tower"
diff --git a/Cargo.toml b/Cargo.toml
index d9d214b..19965ac 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -108,8 +108,8 @@
 tempfile = "3.23.0"
 thiserror = "2.0.17"
 time = { version = "0.3.44", features = ["parsing", "formatting", "serde"] }
-toml = { version = "0.9.8", default-features = false }
-toml_edit = { version = "0.23.7", features = ["serde"] }
+toml = { version = "0.9.10", default-features = false }
+toml_edit = { version = "0.24.0", features = ["serde"] }
 tracing = { version = "0.1.43", default-features = false, features = ["std"] } # be compatible with rustc_log: https://github.com/rust-lang/rust/blob/e51e98dde6a/compiler/rustc_log/Cargo.toml#L9
 tracing-chrome = "0.7.2"
 tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
diff --git a/tests/testsuite/bad_config.rs b/tests/testsuite/bad_config.rs
index a19395f..81d7312 100644
--- a/tests/testsuite/bad_config.rs
+++ b/tests/testsuite/bad_config.rs
@@ -544,13 +544,11 @@
     p.cargo("check")
         .with_status(101)
         .with_stderr_data(str![[r#"
-[ERROR] newlines are unsupported in inline tables, expected nothing
-  --> Cargo.toml:9:27
+[ERROR] missing assignment between key-value pairs, expected `=`
+  --> Cargo.toml:10:24
    |
- 9 |                   native = {
-   |  ___________________________^
-10 | |                   foo: "bar"
-   | |_^
+10 |                   foo: "bar"
+   |                        ^
 
 "#]])
         .run();