Test with Ruby 2.1.1 on CI
Show all failing tests
Improve mashify/rashify specs

The specs used to be isolated from the `call(env)` cycle by means of
using the `on_complete` method directly. Since that method is not
considered part of the public API of Faraday::Response::Middleware, this
switches away from using that method and makes the middleware process
responses the standard way, via `call()`.

This gets rid of the need for "integration tests" because the middleware
is exercised exactly as it would during a real request/response cycle.
Mark compatible with Faraday 0.9
Add Env compatibility layer to specs for Faraday 0.9

Ensures that middleware in tests receives a proper Faraday::Env instance
for Faraday 0.9, and a plain Hash for Faraday <= 0.8.
WIP monkeypatch to provide RequestOptions#preserve_raw
Work around Faraday 0.9 query parsing incompatibility in OAuth2

The query string 'access_token&q=hello` gets parsed with the token value
`nil` in Faraday 0.8, but with value `true` in Faraday 0.9.

This is most likely a regression in Faraday, but for now, simply check
if an OAuth token quacks like a string before trying to treat it as one.
Make RackCompatible middleware compatible with Faraday 0.9

We can't reuse the same `env` hash between Rack and Faraday since
Faraday 0.9 operates with Faraday::Env object.

Solve this by maintaining two distinct `env` objects; one for Rack and
another for Faraday.