added event listening system Fixes #7

I added an event system like we talked about with an `on` and `off`.

the events I added are as follows:
- `before` which happens at the start of `go()` 
- `routeChangeStart` which happens at the beginning of `activateRoute()`
- `after` which happens at the end of `replaceActiveElement()`