Es6 cleanup

I need some mindless work, doing some further ES6 cleanup.

This also, begins to fix some issues @eventualbuddha uncovered during his recent v2 transpile process.

goals: 
* to stop doing things that break when using a proper es6 build
* slowly unwind quickfix hacks
* prefer granular import/exports , as the new transpiler + uglifer can better optimize.
* migrate global specific work-arounds to global shim files




some examples:

example: diverging bindings
------------------------

this is an issue when dealing with cycles.

bad: (diverges bindings)
```js
import { foo } from 'bar';

var otherFoo = foo;
```

foo: (if the rename is actually needed)
```js
import { foo as otherFoo } from 'bar';
```

example: closure compiler dead code remove friendly:
------------------------------------------------------------------------

bad: closure compile wont drop, bar if foo is used, or foo if bar is used
```js
export default {
  foo: function() { },
  bar: function() { }
}
```

good: closure compile will drop whats not used correctly.
```js
export function foo() { }
export function bar() { }
```

Yeah, we are seeing this littered across the repo. We can add it to the JSHint file. /cc @crismali