[NEW TYPE INFERENCE] Don't crash on updating a property partially present in a union

This was uncovered by (but is unrelated to) the NULLABLE_DEREFERENCE tightening
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79432859
Fail immediately if language_in is ES6 and language_out is also ES6 (or unspecified).

This gives a clear message letting the user know what to do, instead of getting strange errors/crashes later in the compilation.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79435625
Miscellaneous cleanups:

Remove unused vars.
Use ImmutableList instead of ArrayList where appropriate.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79445849
[NEW TYPE INFERENCE] Fix unification bug for union type that includes a type variable.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79447509
Add a warning about a common mis-type of namespaces objects.
Fixes github issue 685
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79467896
Adding/updating the declares for all the methods of chrome.browserAction api.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79535678
Add @const annotation to definition of $jscomp namespace.

This allows the new type inference to figure out that
it's a namespace.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=79536976