Make Memory::Query#where and #or behave more like SQL

- make #or its own method rather than an alias for #where
- in #exclude, return a copy of the array instead of destructively
  changing it
- change #order and #desc to act as modifiers rather than conditions,
  since conditions have a different internal structure now
- change #run to treat 'where' and 'or' conditions properly
Lotus::Model::Configuration#adapter now takes in hash params
Check hash params for Lotus::Mapper#adapter

Ruby 2.0 does not support required hash params :{
Drop param check for AdapterRegistry
Merge pull request #83 from joneslee85/patch-9

Lotus::Model::Configuration#adapter now takes in hash params
Added more tests for Configuration#adapter named args. Ref #83
Renaming Sql::Collection collection into mapped_collection. Thanks to @jeremyf :+1:. Closes #67
Merge pull request #73 from viking/issue-72

Make Memory::Query#where and #or behave more like SQL
Adding line numbers to class_eval

Given the following:

```ruby
class MyApp::Document
  include Lotus::Entity
  self.attributes :title
end

MyApp::Document.new(nil)
=> NoMethodError: undefined method `[]' for nil:NilClass
  (eval):2:in `initialize'
```

This error message was unhelpful as I had to go digging around for
where it could be.

The error also calls to attention another interface question. The code
I was using was as follows:

```ruby
module MyApp
  class New
    include Lotus::Action

    def call(params = {})
      @deposit = MyApp::Document.new(params[:document])
    end
  end
end
```

I would like to allow defaults to be passed into initialization. The
former and latter code that initializes `MyApp::Document` are very
much the same.

Drawing a comparison to `ActiveRecord::Base` initialization the
following initialization methods each work:

* `Document.new`
* `Document.new(nil)`
* `Document.new({})`
[ci skip] Updated EXAMPLE.md Ref #33
Merge pull request #86 from jeremyf/adding-line-number-to-eval

Adding line numbers to class_eval