Add startIndex and endIndex positional attributes to the parser
Merge pull request #63 from fasterize/parser_positions

Add startIndex and endIndex positional attributes to the parser
[tokenizer] renamed the self-closing tags state, moved it to its own function
[tokenizer] commented out support for entities in attributes

requires adding a new event to make this work, so delayed for now
[readme] updated benchmark results

switched the results to @AndreasMadsen's htmlparser-benchmark
[bench] removed internal benchmarks

in favor of htmlparser-benchmark
[parser] fixed whitespace
[parser] moved common logic to _updatePosition function
[tokenizer] renamed IN_ATTRIBUTE_NAME_* states, improved formatting
[tokenizer] re-added the carriage return as whitespace

fixes #62

apparently Google's gumbo-parser does behave this way:
https://github.com/google/gumbo-parser/blob/101726c50e172e45be6002c51b85
e45f27f0c2c6/src/tokenizer.c#L322
[tokenizer] fixed handling of unparsed data in end(), added support for several states
[entities] added maps for normal & legacy entities
[tokenizer] added support for decoding HTML entities in `ontext` events

There is still a number of TODOs:
• support decoding entities in attributes
• when in XML mode, only decode XML entities (skip legacy entities)
• move the decodeMap to a JSON file
[tests] added test cases for decoding legacy & named entities

both containing one of the longest available entities, to ensure they
are propperly decoded (especially relevant for legacy entities)
[entities] added map for XML entities
[tokenizer] added support for XML entities

also moved handling of trailing data to _handleTrailingData() (as it
has to be called recursively now)
[tests] also test trailing data support in the numeric entity test
[tokenizer] fixed handling non-existent entities
[tests] added test case for XML entities
[tokenizer] added _emitEntity

as a preparation for supporting decoding entities in attribute values