Destructuring and cover grammar fixes

This changes the strategy from using a transformer to transform the
cover grammars into rewinding the scanner and reparsing using the
target grammar.

This also introduces a AssignmentElement which is used for the
elements of the assignment pattern (like BindingElement which is used
for binding patterns (and default parameters).

Fixes #183
Fixes #836
Fixes #838
Fixes #969
Fixes #1015
Maybe: When we have exhausted the cover grammar possibilities, this method verifies the remaining grammar to produce a primary expression.
?  vs that, these, those, and this