Rename {Environment(#dispatch) => Dispatcher(#call)}

* Accept an additional arbitrary object as third
  parameter to Dispatcher#call. This object will
  typically be an application environment that
  provides access to the logger, a storage layer
  abstraction or really anything necessary. It
  might just as well hold the dispatcher instance
  itself, which could be handy for dispatching to
  other actions from within an action.

* The renaming also makes it clear that this class
  should be considered closed. Its responsibility
  is to dispatch to registered actions and to give
  a list of registered action names. Nothing more.