Refactor models

This a big refactor

- use rails4-way refactoring model modules
- rename `authenticate` and made them more clearly
- remove `Application` model's `model_name` magic
- extract model's non-ORM-specify codes to module(a way to decouple between ORM and model)
- some clean up

The PR may not be merged, but may give some ideas to discussion
Note on naming: doorkeeper already has the orm specifics separate from the "essentials". For example, `lib/doorkeeper/active_record/access_token.rb` is the "essential", ORM-specifics free class definition, where as the `access_token.rb` files in folders like active_record, mongoid, etc are the ORM specific definitions. We don't need to add `_adapter` and `_essential` suffixes, nor to add the `orm_adapter` folder.