Adds quite some documentation on the types.
Some updates on names (rename Name => CPPToken).