Improve info on use of @Controller's with aop proxying

Before this change, issues surrounding the use of @Controller's in
combination with AOP proxying, resulted in an IllegalArgumentException
when trying to invoke the controller method.

This change detects such cases proactively and reports them with a
clear recommendation to use class-based proxying when it comes to
@Controller's. This is the most optimcal approach for controllers
in many respects, also allows @MVC annotations to remain on the
class.

The documentation has also been updated to have a specific section
on @Controller's and AOP proxying providing the same advice.

Issue:SPR-11281
MarshallingView should not close response OutputStream after copying to it

Also throws IllegalStateException instead of ServletException now, consistent with other Spring MVC classes.

Issue: SPR-11411
Consistently avoid close() call on Servlet OutputStream

Issue: SPR-11413
Revised InvocableHandlerMethod exception handling

Issue: SPR-11281
Ignore container callback and marker interfaces for auto-proxy decisions

Issue: SPR-11416
AbstractHandlerMethodMapping should reuse BeanFactory.getType result
Polishing
Upgraded to Commons Logging 1.1.3
Exclude overloaded from equals & hashCode in MethodOverride

Prior to this commit, the inclusion of the 'overloaded' flag in the
implementations of equals() and hashCode() in MethodOverride could lead
to adverse effects in the outcome of equals() in AbstractBeanDefinition.

For example, given two bean definitions A and B that represent the
exact same bean definition metadata for a bean that relies on method
injection, if A has been validated and B has not, then A.equals(B) will
potentially return false, which is not acceptable behavior.

This commit addresses this issue by removing the 'overloaded' flag from
the implementations of equals() and hashCode() for MethodOverride.

Issue: SPR-11420
Upgrade to Undertow 1.0 Final (WildFly 8 Final)
Upgrade to Tomcat 8.0.3
Upgraded to Gradle 1.11
MarshallingView explicitly skips BindingResult when searching for a model object

Just implementing common custom subclass behavior out-of-the-box...

Issue: SPR-11417
Polishing
resolveFactoryMethodIfPossible considers nonPublicAccessAllowed and SecurityManager

Issue: SPR-11422
Polishing

Issue: SPR-11422
Actually upgraded to Gradle 1.11
Test against CGLIB memory leak for method injection

This commit introduces a test in XmlBeanFactoryTests that verifies that
CGLIB generated subclasses for method injected beans are reused across
bean factories for identical bean definitions. In other words, by
verifying that the same CGLIB generated class is reused for identical
bean definitions, we can be certain that Spring is no longer generating
identical, duplicate classes that consume memory in the VM.

Issue: SPR-10785, SPR-11420
Polishing
Upgraded to Jetty 9.1.2 and Guava 16.0.1