Also apply X-Forwarded-Prefix in fromContextPath

Issue: SPR-12500
Polish ServletUriComponentsBuilder
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