Added keep_empty_trees option to Grammar() class

I added an option to the Grammar() class that allows the user to determine whether empty sub-trees in the AST tree will be kept or discarded. I set it to True by default.

I also added a JSON parser example that needs empty sub-trees kept as JSON allows empty objects and arrays as part of its grammar.