Added keep_empty_trees option to Grammar() class and permutation operator.

The first commit adds 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.

The second commit adds a permutation operator (^) to the plyplus grammar. This allows productions such as:

x : a ^ b ^ c ;
 -->
x : a b c | a c b | b a c | b c a | c a b | c b a ;

It also has an optional separator rule using the ^^ operator. This inserts a separator rule between permuted rules.

x : a ^ b ^ c ^^ V ;
 -->
x : a V b V c | a V c V b | b V a V c | b V c V a | c V a V b | c V b V a ;

See the comments to the perm_rule method in plyplus.py and the permutations.py file in the examples folder.