Invalid ObjectLiteral shorthand by non-identifier

```js
// test.js
var a = { '!@#$%' };
```

```
java -jar compiler.jar --language_in ECMASCRIPT6 --language_out
ECMASCRIPT3 ../test.js
```

```js
// invalid syntax
var a={"!@#$%":!@#$%};
```

Only a identifier, can say shorthand for object literal.
Merge pull request #587 from tuchida/invalid-objectliteral-shorthand-by-no-indentifier

Invalid ObjectLiteral shorthand by non-identifier
Fix bugs in JSDocInfoPrinter and added more tests.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73730058
goog.module support for UNCOMPILED/SUPER_UNCOMPILED mode
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73731152
[NEW TYPE INFERENCE] Call containsBottomProp less

This is a perf-only change, that tries to avoid the sometimes
expensive call to containsBottomProp by calling
new ObjectType
instead of
makeObjectType
in cases where we can be sure that the ObjectType is inhabitable.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73733429
[NEW TYPE INFERENCE] Add receiver type (this:) to FunctionType.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73733788
Open Source the JS Conformance passes in Closure Compiler, including bundling
the conformance.proto and generated JAR file in the open source release.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73735021
ES6 externs: move Math+Object.is() from contrib to javascript/externs.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73740397
Enable yield statements inside the guards of all loops and the post-statement of for loops.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73747098
Change Bluetooth API definitions to use @typedefs for objects that are passed
into API functions.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73754756
Set the languageMode in initOptions instead of init, so that it will get set properly if the caller calls initModules instead of init.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73760225
Replaced {ChromeEvent} declarations with {!ChromeEvent}
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73767894
enable jsstring output escaping in the open source compiler.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73816517
[NEW TYPE INFERENCE] Implement FunctionType#unifyUnknowns and fix some bugs in the process.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73818499
[NEW TYPE INFERENCE] Use the jsdoc of the callee for an unannotated function argument.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73825243
[NEW TYPE INFERENCE] Infer declared type of @const RegExps

This CL also does the same for Arrays, but since we
don't yet support generic arrays, the inference for Arrays
is limited to Array.<?>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73828013
Add FormController#$commitViewValue to Angular 1.3 externs. $commitViewValue
doesn't seem to be availble in 1.2, thus this change is for 1.3 only.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73831322
Add fuzzer config to the opensource repo.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=73833578