MIRTH-3393

Implemented a TaskHandler system that allows callbacks when using the new Channel Task system. If tasks are submitted it is now possible to be notified immediately when each task starts, completes, errors, or is cancelled. 

Calling get() on the Futures returned by ChannelUtil tasks will once again throw an exception if the task itself threw an exception. This utilizes the ErrorTaskHandler to retrieve any errors that may have occurred.

Logging exceptions and cancellations is now handled by the LoggingTaskHandler. 

ChannelTask implementations now implement execute(), an abstract method on ChannelTask, instead of call() directly. This allows the task handler callback methods to be injected before and after execute().
Updated dbcp from 1.4 to the latest snapshot build of 1.5. The latest build fixes a bug where connections are not released back to the pool when network connectivity is lost. This appeared to happen primarily with Postgres. If an official build of 1.5 is released we should upgrade to that instead. 

In the future we may want to upgrade to dbcp2 which will require all users to be on Java7.
Issue: MIRTH-3262
Fixed bug where a connection would leak in JdbcDao if a SQLException occurred during a rollback. In the future though we shouldn't even be performing this rollback all the time. It should only be when an exception has occurred.
Issue: MIRTH-3412
Easy peasy
Issue: MIRTH-3159
MIRTH-3404: Added a Database Tasks server settings panel. A new servlet and controller interface for this were added as well. Only one database task may be executed at a time. For now, three tasks were added, to drop the OLD_CHANNEL, OLD_MESSAGE, and OLD_ATTACHMENT tables.