DataBinder unwraps Optional objects and allows for proper handling of Optional.empty()

Issue: SPR-12241
Polishing
ComponentScanAnnotationParser supports multiple base packages within a single placeholder as well

Issue: SPR-10425
Polish FormHttpMessageConverter
Support writing multipart non-ASCII file names

Issue: SPR-12108
Move MessageChannel fields up to AbstractMessageBroker
Detect unsent DISCONNECT messages

This change uses a ChannelInterceptor (inserted at index 0) to detect
when a DISCONNECT message is precluded from being sent on the
clientInboundChannel. This can happen if another interceptor allows
a runtime exception out from preSend or returns false.

It is crucial for such messages to be processed, so when detected
they're processed still.

Issue: SPR-12218
Fix test dependency
Fix Javadoc link to DEFAULT_NONE in @RequestMapping
LiveBeansView escapes double quotes in resource descriptions

Issue: SPR-12252
WebAsyncManager avoids concurrentResult.toString() and builds correct DeferredResultProcessingInterceptor keys

Issue: SPR-12253
Bean method metadata exposed through AnnotatedBeanDefinition

Issue: SPR-12232
Tracking ASM 5.0.4 development: Fix for ASM issue 317539

Issue: SPR-12255
Latest dependency updates (Groovy 2.3.7, Protocol Buffers 2.6, Woodstox 4.4.1)
Catch exception while clearing TCP conn to broker

When a DISCONNECT is sent to the broker, we proactively close the TCP
connection unless the DISCONNECT has a receipt header. Depending on
the timing, the broker may also close the connection on its side.
That appears to cause an exception in reactor on the CI server, e.g.:

https://build.spring.io/browse/SPR-PUB-JOB1-1715/test/case/135247530

This change traps the exceptions and prevents it from propagating.
Add InterceptableChannel

The new contract allows registration of interceptors with any
MessageChannel implementation hierarchy -- for example the one in the
Spring Framework or the one in Spring Integration.
Use InterceptableChannel in AbstractBrokerMessageHandler

Issue: SPR-12218
Protect against NPE when escaping LiveBeansView

Issue: SPR-12252
Update default SockJS CDN location

This commit updates the default location of the SockJS' client library.
The previous location is being retired by the project maintainers.

The new default location is backed by several CDN providers:
* https://cdn.jsdelivr.net/sockjs/0.3.4/sockjs.min.js

See sockjs/sockjs-client#198

Issue: SPR-12254
Polishing