Automated g4 rollback of changelist 64164043.

*** Reason for rollback ***

Breaks compilation or projects without html5 extern.

*** Original change description ***

Implement nextTick in terms of Promise where availale.

***
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64172353
Fix for failing to parse 'catch' as a valid method name.

Always use eatIdOrKeywordAsId for property identifiers, and eatId for variable identifiers.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64174114
Add externs for the new font loading api.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64215862
Automated g4 rollback of changelist 64172353.

*** Reason for rollback ***

Change CL to use goog.global everywhere.

*** Original change description ***

Automated g4 rollback of changelist 64164043.

*** Reason for rollback ***

Breaks compilation or projects without html5 extern.

*** Original change description ***

Implement nextTick in terms of Promise where availale.

***

***
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64220649
Prevent infinite recursion in TemplateTypeMap equivalence checks.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64263527
[NEW TYPE INFERENCE]

Create separate class to represent persistent maps with structural sharing to make TypeEnvs more efficient. This is a separate class so that we can try out different data-structure implementations.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64296595
[NEW TYPE INFERENCE]

Initial support for struct/dict.
Detect illegal property accesses and use of a struct with IN, but don't detect inheritance errors.

Fixes along the way:
- new heuristic for when to infer more vs warn (for names and properties).
- warn when the expr iterated over in for/in is not an object.
- analyze getelem in analyzeLValueFwd/Bwd if the index is not a string lit.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64299099
Native maven support for closure-compiler
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64304485
Add a warning for the use of goog.base that we can use to ban it for projects that want to support strict mode in uncompiled code.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64315048
Support passing promises to Promise.resolve in extern.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64315372
[NEW TYPE INFERENCE] Improve for/in and add a stray test for dicts.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64317540
[NEW TYPE INFERENCE] Make property maps also use new PersistentMap
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64319534
remove maven-ant-tasks now that we have new maven support
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64373254
Remove debug logging inadventeradly left in.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64394685
Adding angular.$cacheFactory.get to externs for AngularJS 1.2

!angular.$cacheFactory is missing an extern for the get method.

http://docs.angularjs.org/api/ng/service/$cacheFactory shows an example with the following code:
var cache = $cacheFactory('cacheId');
expect($cacheFactory.get('cacheId')).toBe(cache);
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64483531
Upgrade closure-compiler protobuf library to 2.5.0
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64485817
[NEW TYPE INFERENCE] Bugfixes for loose object types.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64495593
remove the variable/property map file flags. They're not intended for general use
R=johnlenz
Changing from string to number timer ID values in jasmine extern, as that is what is used in jasmine.FakeTimer, and what the real setTimeout timer ID type is.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64541573
Make JSCompiler warning/error markers <b>BOLD</b>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64573561