route handling cleanups

This does some cleanups to the route handling code.  There are a
few different things happening here:

* properly name route proxy attr on the route object
* route proxy now uses a `validate!` method to contantize and
  error - not magically behind some handler class reader.
* redir proxy now also validates like the route proxy - no logic
  needed in this case - just for maintaining a consistent proxy api.
* properly unit test the route object's run behavior
* update the fake sinatra call to support new route run unit tests
* update route test requires to be up to convention

All this is prep for moving logic out of the sinatra runner.  I needed
to add more logic to the route run method but wanted to get it unit
tests first.  The other cleanups were just a side-effect of adding
in the route run unit tests.