Sinon spies

Add [sinon](http://sinonjs.org/) to the testing environment and use `sinon.spy()` as appropriate in specs.