Merge pull request #700 from cdedie/master

fix for #694 Allow specifying URL through system properties
Fixed #706
Fixed #642
Fixed #430
Fixed #708
Fixed #469
Fixed #626
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.
Build a detailed message for the FlywayException message
Failed to reproduce #714
Gradle property and configuration support for flyway callbacks