Add CORS support

Support both simple and preflight CORS requests:
 - Simple requests are handled thanks to a
    CorsSimpleRequestInterceptor used with a
    MappedInterceptor.
 - Preflight requests are handled thanks to a
    CorsPreflightRequestHandler used with a
    SimpleUrlHandlerMapping.

Each of these CORS interceptors and handlers apply to a
set of specified paths and can be configured to specify
allowed origins, headers, methods, credentials support
and max age.

The DispatcherServlet now automatically dispatches OPTIONS
requests when a CorsPreflightRequestHandler bean is available.

XML MVC namespace and JavaConfig based configuration allow
to configure CORS easily.

Issue: SPR-9278