Fix issue w/ use of UrlPathHelper's urlDecode property

Before this change the getPathWithinServletMapping method of
UrlPathHelper could not work properly when a default servlet mapping
(i.e. "/") was used in combination with urlDecode=false. The fact that
the getServletPath() method of HttpServletRequest always returns a
decoded path was getting in the way.

Although there is no way to check Servlet mappings through the Servlet
API, this change aims to detect the given scenario and returns the full
path following the context path thus avoiding URL decoding.

Note that the same can be achieved by setting urlDecode=false and
alwaysUseFullPath=true. However this change ensures that urlDecode
works properly without having to know that.

Issue: SPR-11101
(cherry picked from commit 12598f8)
MarshallingView should not close response OutputStream after copying to it

MarshallingView also explicitly skips BindingResult when searching for a model object now, implementing common custom subclass behavior out-of-the-box.

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

Issue: SPR-11413
(cherry picked from commit 5f1592a)
Revised InvocableHandlerMethod exception handling

Issue: SPR-11281
(cherry picked from commit 1a1c72c)
Polishing
Upgraded to Commons Logging 1.1.3 and Gradle 1.11