Failed SQL migration error reporting improvement

This pull request fixes issues #575, #587, #647.
A new exception class FlywaySqlScriptException (subclass of FlywayException) was introduced in order to explicitly capture information related to error (script line, statement, jdbc exception), so it can be used in client code to implement application-specific exception handling if required.