Upgrade to Jasmine 2

@harrison  @mrappleton 

There's a discussion to be had around if we want to do `calls.count().toEqual(1)` to assert that a spy is just called once, or if we are happy to just use `toHaveBeenCalled`, or if we add the custom matcher back.

For now I've done a bit of both to show both approaches.