Ensure that context-deferred methods respect string keys
Update Interactor::Context to delegate to its given hash

This allows HashWithIndifferentAccess or any other class that adheres to
the Hash API to be given to Interactor::Context.build and be stored
internally for reference.
Allow an empty context to be initialized easily
Pass a hash copy (not the original) when building a context

Passing a Rails controller's parameters is a common use case for this.
An interactor's performance shouldn't affect the controller or its
parameters.