API Use injector to create database class
API Updated aspect proxy service

- Updated AspectProxyService to handle multiple handlers for each proxied
  object's methods.
- Changed BeforeCallAspect to allow for providing a return value that
  should be returned to the caller instead of the proxied return value
- Changed AfterCallAspect behaviour to allow for returning the value of
  the aspect to the caller instead of the proxied return value
DOC Added aspect oriented proxy documentation
Merge pull request #2703 from nyeholt/3.1

AspectProxy updates