Revised ControllerAdvice basePackages handling (based on package names instead of java.lang.Package)

Issue: SPR-12506
Fixed the output stream incomplete data by explicitly flushing the OutputStreamWriter
Merge pull request #704 from aantono/master

Fixed the output stream incomplete data by explicitly flushing the OutputStreamWriter
Better empty response body support in RestTemplate

Prior to this change, RestTemplate returned an empty response body if:

* HTTP return status 204 or 304
* Content-length header equals 0

This change adds a new condition for this, better supporting RFC7230
section 3.4, for connections that are closed without response body:

* No Content-length header
* No Transfer-encoding: chunked header value
* a Connection: close header value

See SPR-7911 for previous efforts in that space.

Issue: SPR-8016
ControllerAdvice basePackages specifically refer to actual packages (avoiding accidental prefix matches with other packages)

Issue: SPR-12509
Upgrade to JUnit 4.12

Issue: SPR-12511
Update supported WebSocket runtimes in the reference documentation
Add support for autowiring Jackson handlers

This commit introduces the SpringHandlerInstantiator
class, a Jackson HandlerInstantiator that allows to autowire
Jackson handlers (JsonSerializer, JsonDeserializer, KeyDeserializer,
TypeResolverBuilder and TypeIdResolver) if needed.

SpringHandlerInstantiator is automatically used with
@EnableWebMvc and <mvc:annotation-driven />.

Issue: SPR-10768
Add ability to clone to UriComponentsBuilder hierarchy

Issue: SPR-12494
List Tomcat and Jetty Web first.
ResponseEntity provides static "unprocessableEntity()" convenience method as well

Issue: SPR-12515
DefaultSingletonBeanRegistry's isDependent defensively checks for circular recursion

Issue: SPR-10787
Consistent bridge method handling in annotation post-processors

Issue: SPR-12490
Issue: SPR-12495
Polishing
Synchronize message sending

Issue: SPR-12516
Fix detection of the @SendTo annotation

Previously, the default reply destination could not be discovered if the
@JmsListener annotation was placed on a bean that is eligible for
proxying as the proxy method is used internally and does not reveal
an annotation placed on the implementation.

This commit makes sure to resolve the most specific method when
searching that annotation.

Issue: SPR-12513
Fix and polish Javadoc for JpaTransactionManager
Update unprocessableEntity to allow body

Issue: SPR-12515
Fix JavaDoc in TestExecutionListener regarding Ordered
Next Development Version