Scrap the ability to access context directly via interactor method calls

References: https://github.com/collectiveidea/interactor/issues/47
Change context API from hash access to method access

This changes the internals of the context from a SimpleDelegator
delegating to a provided hash, to an OpenStruct. Context values are
accessed via setter and getter methods. Unset methods return nil.

In Ruby 2.0 and later, hash access is still available but is not
explicitly supported.
Remove the activesupport test gem dependency
Merge pull request #52 from collectiveidea/ostruct-context

Change the context object to an OpenStruct rather than a Hash delegator
Use Ruby's idiomatic "call" method rather than "perform"
Merge pull request #53 from collectiveidea/call

Use Ruby's idiomatic "call" method rather than "perform"
Remove success/failure convenience methods from the interactor instance
Change Interactor.call to return the context rather than the instance

This also introduces a similar class-level rollback method in order to
allow organizer rollback without needing to internally track and store
instances of called interactors.
Merge pull request #54 from collectiveidea/return-context

Change Interactor.call to return the context rather than the instance
Remove setup in favor of before/after hooks

The new hooks are not evaluated until runtime, unlike the old setup
method which was evaluated during initialization.
Refactor Interactor#call_with_hooks

This helps pave the way for "around" hooks
Move hook logic out into its own module
Add the ability to specify method names for before/after hooks
Raise an Interactor::Failure error on context.fail!

This allows the interactor to abort execution immediately.
Refactor the organizers-within-organizers integration test

Calling "call" on the class is more consistent with actual usage.
Roll back on failure and error during after hooks