This commit removes the rails engine routes and introduces a
devise_oauth_for helper which constructs the necessary routes.
Benefits of this change:
* Can now have more than one oauth endpoint per app
* Can now safely override controllers
* All current tests are now passing!
Although there are tests for some aspects of the new routing system,
they're not 100% comprehensive and don't cover the authenticate_scope! method
The bug in question was that AR was complaining about it had received
an object of type Client when it expected one of type Client.
Essentially this bug is caused when the Client model is loaded at some point in execution
then reloaded later on, redefining the class with the same name, but different #object_id
In this instance the Client class was being loaded via the routes.rb file when
`devise_oauth_for` created a mapping object which constantized all the model names,
causing Rails to load them all.
Solution is to only constantize them on demand. It also makes the syntax more managable.