Update grammar with new filter expressions
Update perftest to measure lexing time
Allow a single compliance test to be run via env vars
Add support for syntax error tests
Properly support AST repr with unicode chars
Initial support for filter expressions
Add syntax error tests for filters

This also pulls in the syntax.json file from the
jmespath.php repo with a few small modifications.
Don't allow literals as child element in subexprs
docs: fix error in grammar
Support literals with numbers
Add more compliance tests for literals

Fixes an issue with escaping the escape char.
Update specification with new grammar
Use non empty JSON objects
Fixing syntax.json

Using non-empty arrays in objects in the compliance test for better cross-language support for things like PHP and Lua.
Add single keys to given hash types
Merge branch 'mtdowling-jep-7' into jep-7

* mtdowling-jep-7:
  Add single keys to given hash types
  Fixing syntax.json
Update specs with filter/literal exprs
Update grammar with updated subexpression rule

This disallows things like projection[*].`literal`, which
would still work, given the current projection semantics.
However, supporting this wouldn't make any sense, and I can't
think of a good reason why someone would want to use the
above expression.
Fix bug found in lexer for literals
Add script to stress test abnf jmespath grammar

Generates random jmespath expressions, verifies our
implementation can parse it.