Decouple use case implementors from substation

* This removes the Action base class and thus the
  need to inherit from anything in order to
  implement an application use case

* The only public interface required by use case
  implementors is #call(request)

* Request instances now wrap access to the env
  and the input model instance. They now also
  provide #success(output) and #error(output)
  where output is an arbitrary object returned
  from invoking a specific application use case.

* Response instances now provide access to the
  #env used to produce them, the #input model
  instances passed to the use case implementor,
  and the #ouput object returned by that.