Move controller resolution into a separate dispatcher filter.

Having a separate filter that handles controller resolution provides
a few nice things:

* It makes it easy for applications to extend/replace the controller
  conventions.
* It makes dispatcher super simple internally.
* It makes CakePHP less magic.

No unit tests were added as the existing Dispatcher test cases cover all
the functionality in the ControllerFactoryFilter.

Fix up the ControllerTestCase as it can no longer override the
Dispatcher internals to do its work. Instead a special filter is applied
that will replace the controller with a mock if necessary.
Remove constructor that does nothing other than bad things.

Spooky side-effects at a distance on object construction is a no-no.
Make RoutingFilter apply after Asset and Cache filters.

This allows cached/asset requests to not hit the router.