Support java.util.Optional for @MVC named value args

After this change, java.util.Optional is supported with @RequestParam,
@RequestHeader, and @MatrixVariable arguments in Java 8. When Optional
is used the required flag is effectively ignored.

Issue: SPR-11829
Created SettableListenableFuture with tests

A SettableListenableFuture implementation of Spring's ListenableFuture
The class is inspired by Google Guava’s
com.google.common.util.concurrent.SettableFuture, but this
implementation uses ReentrantReadWriteLock and CountDownLatch
internally to handle thread synchronization.

Issue: SPR-11614
Revise SettableListenableFuture implementation

This change modifies the SettableListenableFuture implementation to use
internally a ListenableFutureTask created with a "settable" Callable.

Issue: SPR-11614
Merge pull request #504 from matsev/SPR-11614
Add suppress warning in SettableListenableFuture
Latest dependency updates (Jackson 2.4, Jetty 9.2.1, H2 1.4.178, Apache HttpClient 4.3.4)
ObjectToOptionalConverter needs to be marked as @UsesJava8
update documentation with latest forum infos

Forums will be shortly deactivated and questions should take place
in StackOverflow.
Defensively check javaUtilOptionalEmpty

Issue: SPR-11888
Defensively check javaUtilOptionalEmpty

Issue: SPR-11888
MBeanExportConfiguration's SpecificPlatform properly calls afterPropertiesSet

Also makes the nested SpecificPlatform enum public for Spring Boot to reuse it.

Issue: SPR-11877
WebSphereUowTransactionManager exposes SmartTransactionObject

Issue: SPR-11876
PathMatchingResourcePatternResolver's findPathMatchingResources needs to check for VFS before checking isJarResource

Issue: SPR-11887
ResourceUtils isFileURL detects "vfsfile" as a file system protocol (again)

Issue: SPR-11887
Rename SQL script annotations in the TCF

Prior to this commit, SQL script annotations and related classes in the
TestContext framework (TCF) were named DatabaseInitializer*. However,
these annotations are not used only for initialization and are
therefore misleading when used for cleaning up the database.

This commit refines the names of annotations and related classes for
configuring SQL scripts to be executed for integration tests in the TCF
as follows:

- @DatabaseInitializer -> @Sql
- @DatabaseInitializers -> @SqlGroup
- DatabaseInitializerTestExecutionListener -> SqlScriptsTestExecutionListener

A special thanks goes out to the following attendees of the Zurich
Hackergarten meeting last night for their collective brainstorming:
@aalmiray, @atsticks, @ollin, @simkuenzi, @tangresh, @vyazelenko.

Issue: SPR-7655
Introduce repeatable @Sql tests

This commit introduces explicit integration tests that verify Java 8's
@Repeatable support for the @Sql annotation.

Issue: SPR-7655
Delete remaining SimpleJdbcTemplate usage

This commit deletes all remaining usage of the deprecated
SimpleJdbcTemplate class within the framework itself.

Issue: SPR-11895
AnnotationUtils defensively catches unexpected exceptions from retrieval attempts (proceeding like the annotation wasn't there)

This is analogous to what the JVM does for cases where the annotation type itself isn't present on the classpath. We're effectively extending that policy to values referenced within an annotation declaration.

Issue: SPR-11874
AnnotationUtils defensively catches and logs unexpected exceptions from retrieval attempts (proceeding like the annotation wasn't there)

Issue: SPR-11874
Consistent declaration of private static final logger variables

Issue: SPR-11905