[NEW TYPE INFERENCE] A few more memory optimizations.

Don't allocate unneeded Strings and iterators in appendTo()
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68029750
Add a test verifying that placeholders in replacement are fine.

goog.getMsg had this wrong.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68032055
AstValidator: Allow a function to have both parameters with default values and rest parameters.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68037618
Add support for destructuring assignment with object patterns.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68047167
Simple first CL. Updated comments.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68051953
typo: ObjecLit -> ObjectLit
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68052151
[NEW TYPE INFERENCE] Index property definitions by RawNominalTypes
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68052459
Add support for parsing spread expressions in destructuring assignment.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=68052700