Improve build - single broccoli build file, tests es6

Some more work on the build:
* Grunt runs the brocfile, instead of duplicate methods
* Tests can now be ES6
* Grunt config has `tmpDir` and `tmpSrcDir` config used throughout rest of grunt task config
* Changed tmpDir to `tmp-build` as broccoli wants to use the `tmp` dir and they clash.
* Changed to `src` from `amd` in `tmpDir` as there is no conflict anymore.
* Changed the order of some of the tasks as the tests need to be transpiled.
* All tests are run from the `tmpDir`

Didn't update tests to use ES6 modules. Easy to-do later.

@Rich-Harris everything looked good to me, but if you could double-check the requirejs and final build files, that would be great.