Add JSONString and JSONNumber for transparent handling of different literal representations.

This change also causes inputs of type string and of type immutable(ubyte)[] to never allocate while lexing. Instead, the raw string literal is stored as a slice and only unescaped on demand.