Simplifying grammar and moving to a separate file

This commit simplifies the JMESPath grammar and moved the grammar to a
separate downloadable file.

The grammar simplification includes the following changes:

1. Removed the JSON ABNF rules. Converting the JMESPath behavior for parsing
   JSON into ABNF to get valid precedence would require significant changes
   and complicate the grammar. I think we should just remove the JSON
   grammar from the JMESPath grammar and link to the JSON spec.
2. Added sub-expression-predicate as a separate rule.
3. Got rid of the `digit` rule in favor of just using ABNF's DIGIT.
4. `unescaped-literal` did not include many valid printable characters.
   I've updated this rule to `%x20-10FFFF`, meaning any character after
   and including space.
5. Removed the rule for `quote` in favor of `DQUOTE`.
6. Changed `number` rule from `["-"]1*DIGIT` to `["-"] 1*DIGIT`.
7. Simplified `unquoted-string` using ABNF built-ins:
   `(ALPHA / "_") *(DIGIT / ALPHA / "_")`.