Added liquibase autoconfiguration for database migrations

If Liquibase is on the classpath it will fire up on startup. Various
config options are available (as well as the option to disable it).
Liquibase uses a YAML format for changes (in classpath:db/changelog).
Add autoconfig support for Flyway migrations

Flyway starts up with its default settings if it is on the classpath.
You can also ask Boot to barf if the migration scripts are missing.

Fixes gh-730
Drop 'spring' from 'spring.[liquibase,flyway]'
Harmonize enabled flags for flyway and liquibase
Downgrade Liquibase to 3.0.8

There are some issues with 3.1.1. Performance is one
(according to JIRA https://liquibase.jira.com/browse/CORE-1706),
but the biggest is that there is a package change for the main
ChangeLogHistoryService provider and it's package
(liquibase.channgelog) is not included in the service locator
scan by default. For some reason this only manifests itself
when using the SpringPackageScanClassResolver.

Fixes gh-687
CLI Integration Sample Shutdown

Fixes gh-761

Also add some sugar to the println so that it stands
out a little against the logging.
Add @since
Normalize paths in JvmUtils

Fixes problem in Windoze where file paths cannot be so easily
converted to URLs.

Fixes gh-767
Monkey with process forking for Windoze

There were several problems to fix. 1) a bug in the
JDK (1.7 up to 7_60):

https://bugs.openjdk.java.net/browse/JDK-8023130

which we can work around by detecting buggy VMs and not trying
to use inheritIO. 2) File<->URL conversion is platform dependent
and we shouldn't make any assumptions. The problem in this case
was that file URLs contain a ":" so they can 't be added to a
path in UNIX, but on Windows you need the absolute path with the
colon. Solution: use Files on the classpath for spring-boot:run.

Hopefully also fixes gh-767
Polish
Combine FreeMarkerAutoConfigurationTests

Combine and polish FreeMarkerAutoConfigurationTests and
FreeMarkerNonWebappTests
Restore freeMarkerConfiguration for web

Restore `freemarker.template.Configuration` bean for the
FreeMarkerWebConfiguration. The @Bean method no longer uses a
@Condition since `FreeMarkerConfig` must already exist.
Drop starters for flyway and liquibase

They only add a single extra dependency, so not really
much value.

Fixes gh-770
Monkey with JarUrlConnection to make it work when LANG unset

The problem all along has been in AsciiBytes, so the fix in
commit ce3aaf was just a stop gap for a system where multi-byte
characters are supported but the default encoding is not UTF-8 (e.g.
most Windows systems). The real solution is not to leave it to
chance and always pick an encoding for the JarEntry names (i.e.
in AsciiBytes).

Fixes gh-764
Fix samples that need jdbc and don't import it
Upgrade flyway to 3.0

Fixes gh-771
Upgrade to Spring 4.0.4

Fixes gh-759
Add maven plugin documentation

This commit adds the generated site for the maven plugin alongside
the developer guide and javadoc. The maven plugin is available in
the "/maven-plugin" context.

The advanced information described in the developer guide have
been migrated to the plugin site as most the information is taken
from the code itself, which avoids duplication.

Fixes #749
Add SignalUtils to handle OS interrupts

Extract into a utility to be shared between Shell and RunMojo

Fixes gh-773
Fix build failure

Commit e26e06d5dd broke the full build as the generated zip file for
the size is not generated. Actually, the site plugin has a jar goal that
is exactly meant for what we need to do.

This commit removes the use of the assembly plugin and invokes the
jar goal of the site plugin when the full profile is enabled.

Relates to #749