Loosen dependencies

- Removed duplication of validators, if Devise already set them
- Ensure, attribute for login validated a single time (To avoid errors like `['Email has already been taken','Email has already been taken']`
- Don't depend on Rails, depend on Railties (like Devise does), so others can use it without Rails.

Personally I use it in my project, based on Sinatra and this gem gave a great boost to our development velocity :smile: