Resolve #40 - Service layer request dispatchers can now manage handler lifetime

This means that service layer request handlers do not need to all be constructed
in advance (whether they are being used or not).  When using a DI framework this
forced the request dispatcher to have a lifetime scope of "per unit of work",
since it would depend upon transient request handlers.  The issue this caused is
that every time the dispatcher was re-created, all of the handlers needed to be
re-registered.  Now a dispatcher may have a static/application scope, and
registered handlers may be created, used and disposed as required.

* Marked a number of methods obsolete, which should be removed in v3.x.

* Added new unit test for new functionality.

* Added functionality to the local request dispatcher to track both a collection
  of instantiated handlers as well as factory methods that create handlers.

* Corrected unit tests to take new functionality into account.