Ensure factory is used when creating router

- Use the `factory()` method when creating a router instance.
- Pass the `RoutePluginManager` instance to the `route_plugins` configuration
  option prior to invoking the factory.
- Extract the `route_plugins` to pass to the constructor when in the factory.

Fixes an issue whereby route prototypes were not being created.
PR #4568 merged to master
Merge branch 'pauloelr-zend_db_select_cast_limit_and_offset'
Merge branch 'hotfix/4465'

Close #4465
Merge branch 'hotfix/route-factory-prototypes' of https://github.com/weierophinney/zf2 into pull/4622
Merge branch 'pull/4622' into develop
Forward port #4622