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
Turn on the new parser.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64573877
Turn off BOLD when doing color reset
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64579521
[NEW TYPE INFERENCE] Correctly loosen properties of loose objects.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64583959
Use StringBuilder instead of lots of +='s when scanning identifiers.

Cuts the number of Strings allocated by the parser in half.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=64590907