Added a simple observer/observable pattern of listeners for pre and post hooks on the db migrate task.  This is an effort to address issue 651 located here:

https://github.com/flyway/flyway/issues/651

This task could be updated to include a context that gets passed from listener to listener if there is a need for that.  This would allow listeners to communicate with each other.
Changed listener from an observer/observable pattern to a callback interface.  Also added lifecycle events for all of the flyway tasks, as well as junit tests for each event.
Merged upstream changes
Moved callbacks attribute from a List to a primitive array
Added callbacks property to ant builds and added ant tests for it.  Also fixed flyway-core tests to be compatible with the callbacks array
Added a default FlywayCallback impl for testing and as a base class adapter for clients not wanting to implement all interface methods.  Also added command line callback usage and parameter tests.
callbacks Maven property and tests
oops forgot this file for the maven tests
Moved DefaultFlywayCallback to sample project and updated large-tests accordingly.  Also discovered a class loading issue in Flyway core so I changed it to use the ClassUtils which loads classes off of the Thread class loader.
Moved callbacks to their respective command classes.
Gradle property and configuration support for flyway callbacks
forgot to add groovy DefaultCallback impl for test
SBT property and configuration enhancements for the flyway callbacks
Merge branch 'master' of https://github.com/dlbunker/flyway into dlbunker-master

Conflicts:
	flyway-core/src/main/java/org/flywaydb/core/Flyway.java
	flyway-sbt/src/main/scala/org/flywaydb/sbt/FlywayPlugin.scala