Add compatibility to Ruby 2.0+ with Rails 4.1 and 4.2
- Remove machinist, make model generation more robust and simplier
- Use polyamorous master because it just compated with Rails master
- Brand new Context class, because JoinAssociation changed a lot
- Add 4.1 and 4.2 folders under adapters
- Add some ! methods to visitors, so that we can throw some unexpected behaviors from them
- Split specs into 3.x-4.0, 4.1, 4.2 folders in order to make tests easier
- Make all specs green from Rails 3.0
- Pend few specs because of unnecessary behaviors on Rails 4.1 & 4.2 I think
Remove shared examples, it should be clearer to review
what changed based on Rails versions in specs.
- Also remove some dup methods
Enable using subqueries in joins, a better way to fix #309
Remove things should be placed into Polyamorous.
Remove all join dependency stuff
Squeel can bind params for CollectionProxy in subquery correctly after Rails 4

Fix #312

Examples:

    before:

    Tag.from{first_article.tags.as(Tag.table_name)}.order{tags.name}.to_a
    # => returns error or []

    after:

    Tag.from{first_article.tags.as(Tag.table_name)}.order{tags.name}.to_a
    # => [<Tag>, <Tag>, <Tag>, ...]
Add a spec to prove original AR behavior not be broken. #313

Example:

    Person.joins(:articles).where(articles: { person_id: Person.first })
    Person.joins(:articles).where(articles: { person_id: Person.all.to_a })
Merge pull request #317 from bigxiang/ruby-2-rails-edge

Make Squeel compatible with Rails 4.1 and Rails 4.2.0.alpha