[NEW TYPE INFERENCE]

Don't crash when implementing two conflicting interfaces.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62350510
Switch the compiler to "ALL" detail level by default.  With the V3 format the saving are minimal (unlike the v2 and v1 formats).
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62357286
Add a new annotation, @unrestricted, which means "neither @struct nor @dict"

This is in preparation for @struct being the default for classes.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62360133
Fix incorrect use of []'s in var_args params.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62366768
Add a way to set define values that will be used at both uncompiled and compiled (but overridable in both cases)
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=62367174