Update dependencies.
Use #transform instead of #compile to fix the arrow fn test.

The latest version of the es6-arrow-function library fixed a behavior around `arguments`, namely that `arguments` references inside an arrow function should refer to `arguments` from the parent scope.

This caused a problem with the way rest params were being tested with arrow functions. If you compile rest params first you end up with an `arguments` reference inside an arrow function, which will be moved out. If you compile arrow functions first you end up losing the rest params because recast does not yet support printing ES6 that wasn't parsed by Esprima.

The solution to this was to use #transform instead of doing the source-ast round trip twice.
Fix the generated AST.

Recast just happens to print the old version correctly, but it was
actually wrong. If you had `[].slice.call(arguments, 2)` the structure
of that AST would look like:

```
CallExpression
  MemberExpression
    MemberExpression
      ArrayExpression
      Identifier slice
    Identifier call
  Identifier arguments
  Literal 2
```

So I've updated the structure to be like that.
Merge pull request #2 from eventualbuddha/minor-fixups

Update dependencies and fix an es6-arrow-function conflict.