Router now has specific route events.

Also cleaned up the route event. No longer passes the context which is
set assigned to `this` anyway.
Removed some stray console.log statements.

I forgot about them because I'm being harassed by a fly as I- LEAVE ME
ALONE, STOP FLYING AROUND MY SCREEN
Reworked the controller. Now event based.
Cleaned up the emitted events across the code.

Now the `this` argument is not passed to anything. This is because the
default context of the listener is set to this anyway. It's pointless
passing it again.
Bumped the package version number.
Added some more info to the readme.

This includes information about the abstractness of it all.
Added a blank render method to View.

This is so you can see what you have to override and what is expected
from the API.
Merge branch 'develop'