Revised Socialite implementation

# What

Everything was a bit outdated and written back when Rails Engine documentation and support was pretty much hacked together. The goal is to completely gut the outdated parts and create a revised implementation with a far more configuratable, robust, and testable implementation of Socialite.

### CHANGELOG

* `Socialite.setup do |config|` now only accepts a few simple, yet powerful, options: 
  * `config.provider`: accepts same options as the `OmniAuth::Builder#provider` API
  * `config.user_class`: customize where `Socialite::User` is implemented in the parent application.
  * `config.identity_class`: customize where `Socialite::Identity` is implemented in the parent application.
* `Socialite::User` and `Socialite::Identity` are now abstract classes. Meaning your parent application just inherits from either of these classes (ie, `class Account < Socialite::User; end`). -- You can still use the modules directly.