Backend

### Notes

* I've kept the `pavlov_options` name instead of `context` so that existing operations don't need to be modified.
* Helpers detect if a backend is present, and if so, use the backend instead of going through `Pavlov`.
* **RSpec expectations like `Pavlov.should_receive(:query)` will break when backend is introduced (to that controller or class). I have several ideas for workarounds, let me know if you need them.**

### Fun Fact

If you add something like:

```ruby
# spec/support/fake_controller_backend.rb
module FakeControllerBackend
  def self.included(base)
    base.let(:backend) { double("FakeBackend") }
    base.before(:each) do
      controller.stub(backend: backend)
    end
  end
end

# spec/spec_helper.rb
RSpec.configure {|c| c.include FakeControllerBackend, type: :controller }
```

You'll never ever be able to accidentally execute operations from controllers!