Add pre-route hash that will run method before the routing happens.

# Changes
+ added pre-route hash that takes a string, function, or array of functions.
+ runs the pre-route methods before navigation occurs.

Code Review: 

- [ ] @doug-martin 
- [x] @nicknisi