Instantiate bindings implementation

This updates instantiate to the new bindings system as discussed with @caridy and @matthewrobb.

This is not passing the tests yet, as we need to first create the corresponding implementation in the ES6 Module Loader. The code can be reviewed initially in the mean time.

@arv is there any chance you can assist with working out how to ensure EmptyStatements don't display on as an empty line statement?
It looks like we are visiting the entire tree for every export. I'm OK with this for now but we should be able to handle all export bindings in one pass over the tree.