Optional devise inheritance

This pull request is intended as a discussion starter around the idea of making it possible include devise controller methods without having to inherit from the DeviseController:

https://groups.google.com/d/msg/plataformatec-devise/GkhjMWb9SJI/WDS3-mLbhkoJ

Notes: 
- All tests pass when inheriting from Devise::Base
- I realise renaming DeviseController to Devise::Base will probably break backward compatibility and I'm sure this feature can be implemented without such a large change.
- The only test that fails when including devise the alternative way is the test for devise_controller? I tried a few other ways to check. Would a constant work better?
- I've based this implementation off of the way inherited_resources does it.
- Ideally we'd be testing both inclusion approaches in the tests, right now I've just manually changed the internal_helpers test controller to highlight the failing test.