Extension of KeenCallback interface to support callback execution with detailed information

Added an extension to the KeenCallback interface to support callbacks which require additional information in order to perform the necessary activity.

This implementation assumes that the both callback methods should be
called for each event (if the callback is an instance of the
KeenDetailedCallback interface). This implementation calls the KeenCallback
callback method first, then the KeenDetailedCallback callback method
afterward.

Closes issue #32. Replaces original pull request #35 and is based off 2.1.0.