Fix in object pattern parsing to allow anything that is valid as the left side of an assignment, on the right side of a colon in an object pattern.

This is a roll-forward, but with some refactoring so that speculative parsing will fail faster, which prevents parsing of large object literals from taking a ridiculously long time.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76126495
Allow transpilation for --language_out=ES5 as well as ES3

Fixes #550
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76128389
Remove Event.prototype.state

I couldn't find this in any spec, and this definition conflicts
with that of subtype PopStateEvent.prototype.state
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=76166119