Introduce SQL script exception hierarchy

This commit continues the work began in SPR-9531 as follows.

 - ScriptException now extends DataAccessException.

 - DatabasePopulator.populate() now explicitly throws ScriptException.

 - Introduced UncategorizedScriptException.

 - DatabasePopulatorUtils.execute() now throws an
   UncategorizedScriptException instead of a
   DataAccessResourceFailureException.

Issue: SPR-11564
DeferredQueryInvocationHandler explicitly closes its EntityManager on garbage collection

Includes javadoc revision covering all supported EntityManager types as of JPA 2.1.

Issue: SPR-11451
Extracted simple MethodInvokingBean as alternative to (and base class for) MethodInvokingFactoryBean

Issue: SPR-11196
Favor ScriptException over SQLException

In ScriptUtils and related classes, SQLExceptions are now caught and
wrapped in ScriptExceptions wherever feasible.

Affected "throws" declarations have also been revised as appropriate.

Issue: SPR-11564
Upgrade to reactor 1.0.1.RELEASE
Improve logging in STOMP broker relay

Ignore DISCONNECT messages if already disconnected. This can occur if
the client explicitly sends a DISCONNECT frame and then closes the
socket quickly. The closing of the WebSocket sessions also sends a
DISCONNECT upstream to ensure the broker is aware.
Cache.get(key, type) should also work in case of null value found in cache

Issue: SPR-11567
Use custom config read in ReactorTcpClient

Use a custom ConfigReader to enforce the use of SynchronousDispatcher
and no other dispatchers otherwise created by default. Avoids the
creation thread pools never to be used.
Fix "Configuring the WebSocket Engine" documentation

This commit updates reference documentation in order
to specify that ServletServerContainerFactoryBean is for
server side use and WebSocketContainerFactoryBean
for client side use.

Issue: SPR-11565
Document locale convention in Tiles def file names

In Tiles v3 integration, underscores in filenames are
intended to identify the definition locale. This behavior
is now documented in order to avoid unexpected results
with filenames like tiles_definitions.xml.

This commit also updates Tiles v2 references to Tiles v3
in the Spring reference documentation.

Issue: SPR-11491
Increase logging for spring-messaging tests

A temporary measure related to intermittent CI build server failures.
Improve Javadoc for DatabasePopulator
Improve DataSourceInitializer Javadoc and implementation
Overhaul Javadoc for embedded database support
Support Class meta-annotation attributes with ASM

Prior to this commit, AnnotationAttributesReadingVisitor treated Class
annotation attributes as Strings instead of Classes. As a result,
look-ups for Class attributes in meta-annotations failed with an
IllegalArgumentException.

This commit fixes this issue by consistently treating Class attributes
as Classes in AnnotationAttributesReadingVisitor.

Issue: SPR-11557
Update TODOs for SPR-11574

Issue: SPR-11574
Detect ControllerAdvice beans in ancestor contexts as well

Issue: SPR-11570
Polishing
Polish Javadoc for embedded database support
Improve configurability of EmbeddedDatabaseBuilder

This commit improves the configurability of EmbeddedDatabaseBuilder by
exposing the following new configuration methods.

 - setDataSourceFactory(DataSourceFactory)
 - addScripts(String...)
 - setScriptEncoding(String)
 - setSeparator(String)
 - setCommentPrefix(String)
 - setBlockCommentStartDelimiter(String)
 - setBlockCommentEndDelimiter(String)
 - continueOnError(boolean)
 - ignoreFailedDrops(boolean)

If more fine grained control over the configuration of the embedded
database is required, users are recommended to use
EmbeddedDatabaseFactory with a ResourceDatabasePopulator and forego use
of the builder.

Issue: SPR-11410