Start down path of new build system:

- Move tests to karma test runner and mocha framework, also adding chai assertions
- Add gulp tasks for testing, watching, concatting and compressing
- Update travis file to use new build system
- Remove jstestDriver stuff
- Reorganize a bit so that it's easier to see what's going on
- Create a dist folder to hold the output of builds (should probably look at having a bower branch/repository where these are held, instead of master)

I'm pretty sure we don't want to push this to master, but that's where this was diffed against.
These watch tasks are helpful for development. Basically it uses filesystem hooks to determine when any of the files in the glob or globs changes, then runs the associated gulp task. So if you were working on a feature and you were using a test file, keep "gulp watch" running in the background and every change you make to your feature will be automatically rebuilt on save and then a refresh of your test file will have the new changes.