SEC-1998: Provide integration with WebAsyncManager#startCallableProcessing

Support integration of the Spring SecurityContext on Callable's used with
WebAsyncManager by registering SecurityContextCallableProcessingInterceptor.
SEC-1998: SecurityContext integration with AsyncContext.start
SEC-1998: SaveContextOnUpdateOrErrorResponseWrapper only saves SecurityContext on original Thread

Previously SaveContextOnUpdateOrErrorResponseWrapper would save the SecurityContext on a different
Threads than the one it was created on. This causes issues with Async Web requests which may write
to the response on a new Thread.

Now SaveContextOnUpdateOrErrorResponseWrapper will not save the SecurityContext when a different
Thread invokes any of the methods that commit the response. This prevents issues with Async
processing. However, explicit calls to SecurityContextRepository.save will still save the
SecurityContext since it invokes the saveRequest method rather than private doSave method within
the SaveContextOnUpdateOrErrorResponseWrapper which contains the logic to prevent saving from
another Thread.
Update to Gradle 1.3
SEC-2084: AntPathRequestMatcher and RegexpRequestMatcher support request.getMethod()

Previously a NullPointerException would occur if an HttpServletRequest.getMethod()
returned null.

Now AntPathRequestMatcher and RegexpRequestMatcher will handle if the
HttpServletRequest.getMethod() returns null. While under normal circumstances,
it is unlikely for the method to be null this can occur when using
DefaultWebInvocationPrivilegeEvaluator.isAllowed(String, Authentication).
SEC-2074: Update reference to use <method-security-metadata-source>
Use AspectJMethodSecurityInterceptor in reference

Change reference to use AspectJMethodSecurityInterceptor instead of
undefined AspectJSecurityInterceptor.
SEC-2078: AbstractPreAuthenticatedProcessingFilter requriesAuthentication support for non-String Principals

Previously, if the Principal returned by getPreAuthenticatedPrincipal was not a String,
it prevented requiresAuthentication from detecting when the Principal was the same.
This caused the need to authenticate the user for every request even when the Principal
did not change.

Now requiresAuthentication will check to see if the result of
getPreAuthenticatedPrincipal is equal to the current Authentication.getPrincipal().
SEC-2078: Updated Javadoc to reflect that updates to Principal will also trigger reauthentication
Revert "SEC-2078: Updated Javadoc to reflect that updates to Principal will also trigger reauthentication"

This reverts commit ece4a0f0674f93dc9f24c17ede30017b28f8ba45.
Revert "SEC-2078: AbstractPreAuthenticatedProcessingFilter requriesAuthentication support for non-String Principals"

This reverts commit 3fe7791266321f6f4f22ef8b4cd049ec5045f773.
SEC-1998: SecurityContextCallableProcessingInterceptor uses postProcess

Previously SecurityContextCallableProcessingInterceptor used afterCompletion
to clear the SecurityContextHolder. This does not work since afterCompletion
is invoked on the Servlet Container thread.

Now SecurityContextCallableProcessingInterceptor clears the
SecurityContextHolder on postProcess which is invoked on the same thread
that the Callable is processed on.
SEC-1998: DummyRequest extend HttpServletRequestWrapper

Previously DummyRequest implemented HttpServletRequest which caused complications
since Servlet 2.5 and Servlet 3 had non passive changes. While we were "safe" if the
Servlet 3 methods were never invoked reflective access of the methods would also
problems. We could prevent users from accessing the methods of DummyRequest by
returning new HttpServletRequestWrapper(DummyRequest), but a debugger could
potentially try to iterate over the methods triggering a NoClassDefFoundError.

DummyRequest now extends HttpServletRequestWrapper which will be dynamically
linked to the proper version of HttpServletRequest. We use a Dynamic Proxy that
throws UnsupportedOperationException to implement any methods we are not
interested in.
Remove unused FilterInvocation.DummyResponse
SEC-2079: Add Servlet 3 Authentication methods

Add support for HttpServletRequest's login(String,String), logout(),
and authenticate(HttpServletResponse).
SEC-1998: Async tests with SecurityContextHolderAwareReqeustFilter
SEC-2092: Add servlet api example