Object Rest/Spread Properties

This proposal was well received when presented to TC-39 and will continue to get work for ES7. Let's start experimenting with it.

https://gist.github.com/sebmarkbage/aa849c7973cb4452c547

@jeffmo @benjamn
Is this refactoring necessary? I definitely think the way you've restructured things is cleaner, but I'm slightly concerned about merging from upstream. If at all possible, it'd make things easier to merge from upstream if we minimize line moves in favor of line insertions where possible