Refactor route params

The main goal of these refactors is to stop overriding `_routeToRegExp`, which will make the BaseRouter a little less brittle to Router changes. 

There were also several other refactors that I added to the PR. Some of them were discretionary nice-to-haves. Others went hand in hand with some of the changes. 


There are many checks throughout the code for whether we're handling a regexp route or string route. Expanding it out this way so we have a reference to a regexp and string will give our code downstream more confidece to handle the appropriate type.