Expose builder arguments to default functions.

Most default functions need no arguments, but having access to the builder arguments is extremely helpful when filling in fields that directly reflect properties computed from other fields.
Rename ArrowExpression to ArrowFunctionExpression and make it printable.
Add stub printer cases for esprima-harmony extension types.
Stub out printers for XJS extension types.
Implement printers for already-defined Harmony types.

Left some types not used by Esprima as TODO.
Implement a printer for PropertyPattern.
Implement a printer for LetStatement and LetExpression.
Implement a printer for MethodDefinition.
Implement types and printers for all XJS* extension types:

  - XJSAttribute
  - XJSIdentifier
  - XJSExpression
  - XJSElement
  - XJSOpeningElement
  - XJSClosingElement
  - XJSText