Add adapter() DSL [WIP]

For whom who have no idea what this is about, the idea is to have an DSL that allow you to configure your collection. The DSL allow you to assign adapter to same collection (with different repository). Here is an example:


```ruby
Lotus::Model.configure do
  adapter :sqlite3, :sql, SQLITE_CONNECTION_STRING, default: true
  adapter :cache, :memory, 'memory://localhost'

  mapping do
    adapter :sqlite3 do
      collection :users do
        entity     User
        repository UserRepository

        attribute :id,   Integer
        attribute :name, String
      end
    end

    adapter :cache do
      collection :users do
        entity     User
        repository CustomUserRepository

        attribute :id,   Integer
        attribute :name, String
      end
    end
  end
end

Lotus::Model.load!
```

As you can in the example above, the collection `:users` will accordingly use the right adapter based on the repository they use. Now, please be noted that if we do not explicitly declare adapter for a collection, the default adapter will be used

```ruby
collection :users do
  entity     User
  repository UserRepository

end
```

in the code above, the default `:sqlite3` adapter will be assigned to collection `:users`. Good? let's move on.

Now, let's see how it works:

```ruby
@user = User.new(name: 'Trung')

UserRepository.create(@user)
UserRepository.instance_variable_get(:@adapter).must_be_kind_of Lotus::Model::Adapters::SqlAdapter

CustomUserRepository.create(@user)
CustomUserRepository.instance_variable_get(:@adapter).must_be_kind_of Lotus::Model::Adapters::MemoryAdapter
```

This gives user a powerful mass-destruction weapon for writing test, you can use memory adapter to speed up the test without compromising with other solutions like mock/stub. It also paves way to new paradigm where your data could be replicated to other backend easily. The are more usages that I could not think of right now, but you get the idea.