Use StringFragment to avoid creating new strings

- Use StringFragment as the result of the munch functions.
- append to string directly from the StringFragment as opposed to converting to string.

This worked out really nicely in terms of cutting down the amount of computation.  Chopped over 20% of the instructions according to valgrind (running against folly+gtest+double_conversion).

Can now process all that in 2.259 s, versus the 3.7 for Facebook's C++ Flint.

Had to replace a macro with an inline function to take advantage of templates.