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
these adapter just moved from `doorkeeper/models/`,
the origin enable ORM implementation is define ORM specified models' class, and redefine them with common codes(associations, validates, business logics, etc.)
but if want to extract ORM support to separate gems, it needs extract common codes as modules(because there may not has models' definition yet, it will cause no method error without ORM), I naming these modules `_essential` may wrong, but I think we should give them a clearly name to notice that they are not model class