Introduced SpringProperties class and optional "spring.properties" file

This in particular allows for specifying "spring.getenv.ignore" and "spring.beaninfo.ignore" in a local way within the application, in case that JVM-level system properties are locked.

Issue: SPR-9014
Issue: SPR-11297
Polishing
Allow consolidating config in root context with Java

This change makes it possible to provide no configuration for the
DispatcherServlet when extending
AbstractAnnotationConfigDispatcherServletInitializer, and therefore
provide all config through the "root" context.

Issue: SPR-11357
Improve 'switch off commons-logging' documentation

Update reference documentation to make it clearer that only
`spring-core` has a direct dependency on `commons-logging`.

Also reference the 'empty jar' alternative option as described in
the SLF4J FAQ.
Merge pull request #445 from snicoll/commons-logging-doc

* commons-logging-doc:
  Improve 'switch off commons-logging' documentation
Added test for SpringProperties setFlag method

Issue: SPR-9014
Issue: SPR-11297
(cherry picked from commit 23249cd)
Drop Introspector.flushFromCaches calls completely

According to the JDK's documentation and changelog, the Introspector itself safely handles weak references as of JDK 6 update 21 (which is what we require for Spring 4.0).

Issue: SPR-11356
Polishing

Issue: SPR-11357
Polishing
Introduce xstreamVersion constant in Gradle build
Polish Javadoc in XStreamMarshaller
Clean up generics warnings in spring-oxm tests
Upgrade XStream to 1.4.6
Polishing
Removed LocalDateToDateMidnightConverter pre-release since DateMidnight is deprecated as of Joda-Time 2.3; marked DateTimeToDateMidnightConverter as deprecated
Raised all dependencies to latest possible maintenance releases; introduced additional library version variables; consistently grouped dependency scopes
Further reordering of dependencies
Consistently switched optional dependencies to scope 'optional'
Compatibility with JOpt 4.6

JOpt 4.6 redeclared its nonOptionArguments() method from List<String> to List<?>, requiring us to select String arguments only as we do for regular option values already.

Issue: SPR-11359
Consistently declare @SuppressWarnings("serial") instead of dummy serialVersionUID