Add json parser reporting accurate source locations.

The json parser is a copy of "package:json/json.dart" where the parser has been modified to report accurate source locations (in absolute position from the beginning of the contents) to the [JsonListener] interface.

The parser will be used to implement "smarter" validators for json file with a specific format (e.g. manifest.json).
The number represents the various "states" of the parser. It is somewhat common for state based parsers to use numbers like these. Most of the code comes from the "package:json/json.dart" source file.

As for using "Enum", I agree the Enum class looks nice in general, but I'd rather stick to simple integer constants for now because

* The code was initially written like this, and it is tricky to manually write (and get right) a state based parser. :)
* This would make this library depends on Spark specific implementation, and, as mentioned earlier, I think it would be nice to keep this library with a few dependencies as possible for now.
* It looks like Spark enums are instance based. In my experience, parser are generally very sensitive to performance, and using integer bitsets is part of getting the "best" performance possible.