Extract MimeType as a base class of MediaType

MimeType is available in core-spring and does not include support
for quality parameters and media used in HTTP content negotiation.
The MediaType sub-class in org.springframework.http adds q-parameters.
Add header support to WebSocketConnectionManager

Issue: SPR-10796
Allow @ResponseBody on the type level

This change enables having @ResponseBody on the type-level in which
case it inherited and does not need to be added on the method level.

For added convenience, there is also a new @RestController annotation,
a meta-annotation in turn annotated with @Controller and @ResponseBody.
Classes with the new annotation do not need to have @ResponseBody
declared on the method level as it is inherited.

Issue: SPR-10814
Fix bug that ignored custom json prefix

Issue: SPR-10817
Added Java 8 compliant @Schedules container annotation for @Scheduled

Issue: SPR-10532
Introduced  DefaultParameterNameDiscoverer which checks JDK 8's standard reflection first and then falls back to ASM-based debug symbol analysis

Also, StandardReflectionParameterNameDiscoverer calls "Parameter.isNamePresent()" now to return null (and pass on to the next discoverer) if no JDK 8 parameters are available. Note that this requires OpenJDK 8 b100 or higher to compile now.

Issue: SPR-10532
XStreamMarshaller exposes public marshal methods with DataHolder parameter

Also splitted buildXStream into constructXStream and configureXStream now.

Issue: SPR-10421
Consistent use of varargs, consistent template method order
Added XStream CatchAllConverter

Added XStream CatchAllConverter that supports all classes, but throws
exceptions for (un)marshalling.

Main purpose of this class is to register this converter as a catchall
last converter with a normal or higher priority in addition to
converters that explicitly  support the domain classes that should be
supported. As a result, default XStream  converters with lower
priorities and possible security vulnerabilities do not get invoked.
Add test with @Schedules container annotation

Issue: SPR-10532
Added reference to CatchAllConverter

Added reference to CatchAllConverter in both javadoc and reference docs.

Issue: SPR-10821
Fix typo in reference docs
Merge pull request #328 from lonre/typo-fix

# By Lonre Wang
* typo-fix:
  Fix typo in reference docs
Avoid use of repeated @Scheduled in tests

Commented out severalFixedRatesWithRepeatedScheduledAnnotation() until
we have full Java 8 support in the IDEs (e.g., Eclipse).

Issue: SPR-10532
Polish WebSocketSession

Update methods available on WebSocketSession interface.
Introduce DelegatingWebSocketSession interface.
Fix configuration issues in DefaultSockJsService
Add HandshakeInterceptor

A HandshakeInterceptor can be used to intercept WebSocket handshakes
(or SockJS requests where a new session is created) in order to
inspect the request and response before and after the handshake
including the ability to pass attributes to the WebSocketHandler,
which the hander can access through
WebSocketSession.getHandshakeAttributes()

An HttpSessionHandshakeInterceptor is available that can copy
attributes from the HTTP session to make them available to the
WebSocket session.

Issue: SPR-10624
Support 'empty' StreamSource in Jaxb2Marshaller

Added support for StreamSources that do not have a InputStream or
Reader, but do have a System ID.

Issue: 10828
Add canRead/Write to MarshallingHttpMessageConverter

Issue: SPR-10463
Remove Cookie support from ServerHttpRequest

Although ServletHttpRequest provides access to Cookies, other
implementations may not. At the moment this was only needed
for SockJS to check the value of the JSESSIONID cookie. This
is now down by parsing the raw cookie values locally.

If comprehensive cookie support is to be added, we should
probably consider HttpHeaders as a potential candidate.