This patch consistently changes the inclusion order for unit test files
to the following:
1. The header of the unit under test (using <> includes).
2. The unit_test.hpp header (using "" includes).
3. Any additional auxiliary test headers (using "" includes and sorted alphabetically).
4. Additional system headers needed for the test (using <> includes and sorted alphabetically).
5. Conditionally included system headers (using <> includes).
Putting the unit under test's header at the very beginning has the
advantage of also testing that the header is self-contained. It also
makes it very quick to tell what unit is tested in this file.
The rule to format a basic string and a key is different. `"""` cannot
be used with JSON keys. Also, toml key is basically not wrapped by `"`.
So we need a function to format a key in JSON.