Remove support for legacy API.

This PR will require a minor version bump when publish.

Removes support for the crappy `withRoutes` API from the original incantation. Additionally, adds documentation, cleans up some tests and includes some minor code changes.