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).
Ok, I ended up moving these 2 methods into a class, so that the code calling the "expectEvent" function would fit into the 80-column limit (I really didn't want to split these lines, as it would make the test almost unreadable, imho).