String optimizations

1. Move strings we no longer need
2. Append char to whitespace instead of string (of 1 char)
3. Clear whitespace instead of ``` = "" ``` (tiny speed difference from
benchmarking, nice to know anyway)
4. Use ``` const char * ``` for startsWith, avoiding the creation of
temporary string objects.
Updated expected test output
Use unordered_map when key order is not important

- Unordered_map is faster for lookup, O(1) vs O(logn).  We profiled them
previously with GCC 4.8.1 to make sure, it holds even for small
collections.

I saw also a lot of string copying in the Checks, I'm going to look to
cut those down as well.
Use moves and statics
one more move
merge with unordered_map changes
Merge branch 'optimize-strings' into test-new-speed
Use equal instead of find-if
Formatting and typo
Formatting
Force JSON output to respect lint level
Merge branch 'master' of https://github.com/L2Program/FlintPlusPlus