Add integration test for all three object property type

Tests object concise methods, short notation and spread property all in one
test.
Remove trailing commas in spread property transform

The spread property transform needs to consume a whole object literal. The
trailing comma transform can't run after it, so we should just make sure that we
remove trailing commas directly in the spread transform.
Do scope metadata right

We were clownily dropping bindingPath and bindingNode
Silently ignore null/undefined source arguments to Object.assign.

This week's TC39 committee meeting decided in favor of not throwing when `null` or `undefined` arguments are passed to `Object.assign`. Instead, they are silently ignored, as if they were empty objects. Note, however, that it is still an error for the first argument (the target object) to be `null`.
Destructuring: don't redeclare vars in case of AssignmentExpression

In case of assignments, assume the vars are defined already, and don't redeclare them via single `var` statement.
Add reserved words visitor to transforms visitor list

This depends on the diff which updates jstransform with a reserved-words visitor. This diff is to add that visitor to our pipeline
For-Loop for Rest Param Transform

Changes `jstransform`'s rest param transform to use a for-loop instead of `Array.prototype.slice` which can cause de-optimizations in V8.
Cleanup Temporary Variables

Cleans up logic for creating code for temporary variables. See D1610038#inline-12141257.
Destructuring: handle literal property names

This one fixes literal property names in
destructuring transform
Fixing some newline-preserving issues in es6-class-visitors.

  funcA(
    param1) {
  }

was not preserving the newlines.
Followup fixes for open source

- add Object.assign polyfill
- make sure we pre-transform spread in tests
Merge pull request #36 from zpao/update-from-internal

Update from internal