Remove unused import from RegisteredEventListener.

The import for SeekableByteChannel was not used.
Improve documentation in EventListener.

EventListener now describes the signature of an event handling
method.
Improve documentation in EventMonitor.

EventMonitor now describes the signature of event
monitoring methods.
Improve documentation in EventRegistrar.

EventRegistrar now indicates that event monitoring methods
are handled by the registerEvents and unregisterListener
methods.
Improve documentation in Database.

The documentation to Database.registerEvents now indicates
that event monitoring methods are also registered.
Add MonitorNotifyTask to the project.

This class handles notifying a single RegisteredEventMonitor
of the outcome of an event. It is a Runnable that is submitted
to an ExecutorService.
Add MonitorNotifyFuture to the project.

This class represents the future outcome of the monitor notification
process. It can be used to wait for all event monitors to be notified
and to check for any exceptions that may have occurred.
Add monitor notification functions to EventFiringFuture.

An event-firing class can use the notifyMonitors(Result) method
to notify any event monitoring methods of the outcome of an event.
This method will send the Result to all event monitors on separate
threads and returns an MonitorNotifyFuture to allow clients to
track the progress of the monitor notification process.
Improve documentation in EventFiringFuture.

EventFiringFuture now indicates that a Result value of ERROR from
getResult does not indicate that the event monitoring process failed
but only that an event handling method threw and exception.
Add EventMonitor support and locking to EventFiringManager.

EventFiringManager now support registering EventMonitor tagged
methods and properly locks its internal maps and sets to ensure
thread safety.
Merge branch 'master' of github.com:TheGreenMachine/Scouting-Definitions