Mostly fix identifier parsing.

Previously identifiers could not contain underscores or dollar signs;
this now works.

Identifiers still cannot contain [^a-zA-Z] unicode letters or escape
sequences. It looks like I could support the former by calling out
to the python unicodedata module; the latter would probably be
relatively straightforward. I'm not sure how common either need is
so for the moment I'll file separate bugs for them.

The grammar was updated and regenerated by running:

    % python ../glop/glop/main.py -C \
         -g json5/json5.g -P json5 -o json5/parser.py

Also, bumped the version to 0.2.4 and reworked the unit test structure a
bit to reduce boilerplate.

BUG=3
5 files changed