Initial source

Includes:
  UTF8 encoding/decoding
  Foundation for functional parsing of tokens
Added token emission down the state stack
Added source modification through token emission

UCNs will use this to modify the source in place
so UCNs can be used for identifiers.
Added string-literal and eof tokens

I'm now starting to format the output to match
the tests. More work needs to be done to avoid
duplicated code in different token types.
Reduced code redundancy in token classes

Also added a new src/trait directory for
global traits.
Added new-line emission
First go at trigraphs

Trigraphs within string literals are resolved. Any failed trigraphs,
such as ???! where ??? fails first, yields ?, then tries ??!, will work
within the context of string literals. For identity-level punctuation, a
? will still need to be emitted.
Organization and documentation pass