Only call `.all` or `.scoped` when necessary

If we already have an ActiveRelation (i.e. scope-like) object, we don't
need to get a different scope back. Only raw model classes (that don't
respond to `each`) need to be coerced to an scope-like object.

This relates to #73
Modernize travis build matrix

- Drop support for Rails 3.1 and below
- Only test 1.8 Rubies with Rails 3.2
- Add Ruby 2
- Add Rails 4 RC1
Bump version to 2.2.0
Develop locally with Rails 4
Use release version of Rails 4 for CI