Fix a small oversight in ES6 conversion in which we tried to use a STRING_KEY node as a name node.

It turns that this was dead code because visitStringKey had already been called.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75225904
Transpile array patterns in param lists.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75231533
Add preconditions for AST templates.
gcdPrivate API: Update to new API spec for confirmCode to add code param.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75242002
Refactor to simplify transpilation of destructuring patterns in param lists.

Now we just convert them to var statements in the function body, then they'll get transpiled to valid ES3 by visitObjectPattern or visitArrayPattern.

This CL also fixes a couple small issues with computed properties.
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75243091
Merge pull request #615 from concavelenz/master

Add preconditions for AST templates.
Transpile destructuring patterns in param lists that have default values.

Note, this is not about default values IN the pattern, e.g.

function f([a, b=1, c]) {}

which already worked, but about default values for the entire pattern, e.g.

function f([a, b, c] = [0, 1, 2]) {}
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=75303254