plx::JsonValue second checkpoint

some refinements.
split JsonType from JsonValue

also changed the unordered_map for a regular map and the
sizeof(JsonValue) came down from 88 bytes to 48 bytes.