[added] onActiveStateChange, onCancelledTransition, onTransitionError Routes props

Also, removed Routes.handleAsyncError and Routes.handleCancelledTransition.

This PR exposes these handlers as props so they can be overridden by users. The `onTransitionError` prop is especially useful since it permits users to attach their own error handlers instead of using the default error handler that just `throw`s (see #151).

I've written tests for these new features that all pass when I run them alone. However, when I run `npm test` locally there are 3 failing tests, but I'm not convinced that any of them have to do with my changes. I've digged around quite a bit but can't figure out what's going on in the DOM while the tests are running.

@rpflorence Since you're more experienced with karma than I am (and writing DOM tests in general) I thought you might be able to take a look?