Implement EMS.coffee as it's own component

This PR moves the EMS class into it's own separate component so we can use it in various projects and not just webparts.

A couple of changes from previous components we've made:
- Use Grunt ( http://gruntjs.com ) for compiling/watching assets. This is the JS equivalent of Guard and has support for a lot more JS-related things.
- Use Karma test runner: http://karma-runner.github.io/ so that we can easily run jasmine concurrently on multiple browsers