Minimized ASM usage

In particular, avoid accidental usage of ASM for core JDK types - which will fail in case of a new bytecode version in the JDK, even if the application itself has been compiled with an earlier bytecode target.

Issue: SPR-10292
Revised Joda-Time support (as a side effect of JSR-310 support in Spring 4.0)

Issue: SPR-9641
Consistent Map/Set ordering

Use LinkedHashMaps/Sets wherever exposed to users, and code tests defensively in terms of expected Map/Set ordering. Otherwise, there'll be runtime order differences between JDK 7 and JDK 8 due to internal HashMap/Set implementation differences.

Issue: SPR-9639
Fixed general test suite problems found during OpenJDK 8 upgrade

Issue: SPR-9639
Upgrading to JDK 1.8 bytecode along with ASM 4.1 patch

ASM has been patched to accept 1.8 bytecode simply through removing an assertion. As a consequence, we have an embedded copy of the ASM sources now instead of jarjar'ing the original ASM jar. The sources originate from ASM 4.1; for CGLIB 3.0 compatibility, a further assertion has been removed.

Issue: SPR-9639
Initial support for JDK 8 Date-Time (JSR-310)

This is largely derived from our existing Joda-Time support, with corresponding classes wherever possible.

Issue: SPR-9641
Adapter for JDK 8's standard parameter name reflection facilities

Issue: SPR-9643
Support for JDK 8's "common" ForkJoinPool

Issue: SPR-9644
Temporary workaround for JDK 8 test compilation/execution problem

Issue: SPR-9639