Gulp and testing framework

I am opening this up as a PR rather than a direct push as this has some heavy additions.

Mainly, to set up karma + mocha + chai I also set up gulp.js. I personally do not like how complicated gruntfiles can get and so I typically opt for gulp lately. I see no reason why we can't keep both around at least for now.

I haven't actually written any tests yet, just got the framework to do it set up.