Add Sinon.js for better spying, stubbing and mocking

Added Sinon.js and [jasmine-sinon](https://github.com/froots/jasmine-sinon) to the test suite for better spying, mocking and stubbing.

I was gonna commit these dependencies directly into `spec/javascripts/helpers` but remembered Bower's `devDependencies` just in time :)

Although `jasmine-sinon` adds matchers with the same name as Jasmine's built-in ones, it's smart enough to identify non-Sinonjs spies and pass it off to Jasmine's original matcher. This means none of the tests break :)

I've only updated one actual spy in the tests as a proof-of-concept but if we're happy with this I'll do the rest :)