Adds some macros to define suites and test cases and such.

These aren’t, for the most part, fleshed out very well, but it demonstrates the ability of the C preprocessor to generate functions with unique (but predictable) names and call them with those names.

Test cases therefore become functions named something like com_antitypical_lagrangian_test_case_17.
Test suites have a name and have test cases added to them.

Test cases are added to the most recently defined suite, meaning that you can have multiple suites in a file or even none (although in the latter case your tests get dropped).

There should be a default suite so that your tests won’t get dropped.
Reifies test cases.
Error checking.
Test suites and cases can be run.
Adds a readme which is almost functionally useless.
Adds a planning document.
Test suites don’t let clients mess with their internal state.

Had to jump through an annoying hoop here to make the compiler accept a publicly-immutable,-privately-mutable dictionary, which is obnoxious as hell.
Adds @l3_setUp.
Adds L3_DEBUG, L3_TESTS, and L3_RUN_TESTS_ON_LAUNCH macros which you can define in your targets: -DL3_TESTS=1
Changes macro prefixes to l3_.
Adds a test runner and a test application target that exercises it.
Takes a stab at suites with properties.
set_up instead of setUp, to match @compatibility_alias (the only two-word @-ism that I could think of).
Adds a state class and attempts to implement type-safe state for test state which is not going well.
Tests now receive state, and it’s now possible to declare the form that state should take.
Corrects the release-configuration suite/test/setup macros.
Moves the preprocessor utilities to a separate header.
Adds suite implementations.
L3 tells you when you forget a required test suite implementation.
Removes the unused onLoad block from L3TestSuite.
Clean up.