Commits:
* f60abab splitter: Improve parens postprocessor
* 359c8a1 splitter: Add parens postprocessor
* 19e2774 splitter: Fix handling of trailing comments/whitespace
* ee5f31c splitter: Improve "else" handling
* 23b5186 dustmite: Change default strategy to inbreadth
* a8d9681 Add inbreadth strategy
* 306c9d4 Add pingpong strategy
* 3f4bf00 dustmite: Autoretry cache writes
* b7354d7 dustmite: Add --strategy switch
* 99a8169 splitter: Tweak block statement postprocessor
* 919b3ac splitter: Tweak block keyword postprocessor
* 95a3e69 splitter: Tweak pairing postprocessor
* 50e4ac5 splitter: Recognize function invariants
* 1aa5dff splitter: Reimplement pairs like any other separators
* 26b4aa6 runtests fixup
* 400e3d7 dustmite: Add --dump-html
* c66780e Add enum test
* 3cdc67f runtests: Add support for dump-only tests
* 80acb1b Fix maximum depth of dependency postprocessor output to be logarithmic
* 5f77e4a Add list test
* 5221a07 splitter: Pairing postprocessor fixes
* d2276f6 splitter: Group if/else together
* afc911a .gitignore
* 7d58f28 tests: Add UDAs to obfuscation tests
* 5d19124 runtests: Print which tests failed to finish
* f89898f New splitter module
* 3a90ebf dustmite: Improve --dump dependency formatting
* 711aa2b runtests: Run dustmite via rdmd
* 0f869bd Use unseeded RNG for --obfuscate --keep-length
* bc2e233 tests: Version progress (filtered reduction output)
* fd63894 Use src.result for final, versioned result
* d83dafb Add current test results
* 0550cc5 runtests: Pass opts when dumping as well
* d471242 .gitignore
* 5e52252 runtests: Fix opts loading
* bee1600 Fix coverage test
* 13d0300 Add test runner
* 0a180b6 Test command fixes
* 96570ef Add existing tests (most results are outdated)
* 75b0108 Add .gitignore
* e27ef66 dsplit: Don't consume whitespace after closing a pair
* 10d2fc5 dsplit: Split by .
* 0311f50 dsplit: Improve ! splitting
* 613459f dsplit: Split by !
* fb52bf3 dsplit: Unwrap useless nesting
* d16ea86 dsplit: Improve whitespace splitting