Improve CORS handling in AbstractSockJsService

After this change, AbstractSockJsService does not add CORS headers if
the response already contains an "Access-Control-Allow-Origin" header.
Essentially it backs off assuming CORS headers are handled centrally
e.g. through a Filter.

In order to support this, the ServletServerHttpResponse now returns an
instance of HttpHeaders that also provides access to headers already
present in the HttpServletResponse.

Issue: SPR-11443
Allow generics-based injection in case of nested unresolved type variable

Issue: SPR-11471
SpringBeanELResolver's setValue should not throw PropertyNotWritableException if provided value is identical to current bean instance

Issue: SPR-11502
Polishing
Consistent dependencies on official JTA 1.2 and JMS 1.1 API jars
Fix typos in Javadoc in AssertThrows
Clean up test warnings that show up in Gradle console
Fix double SPeL evaluation of parameter

 When a node of an SPeL expression was a call to a bean referenced
 in a method argument, the expression was resolved twice.

 The resolved arguments are now specified to MethodValueRef instead
 of resolving the arguments again in the constructor

 Issue: SPR-11445
Decode target parameter names prior to saving a FlashMap

In addition to the target parameter values (SPR-9657), the target
parameter names must also be decoded to be able to match
them to the parameter names of incoming requests.

Issue: SPR-11504
Polish
Merge pull request #484 from sdeleuze/SPR-11504
DefaultListableBeanFactory only puts 'cache-safe' Class keys into its by-type cache

Issue: SPR-11520
Avoid stack overflow in case of circular type reference

Issue: SPR-11522
Ignore placeholder resolution failure as well in case of ignoreResourceNotFound=true

Issue: SPR-11524
Ensure Gradle does not execute inner classes as tests
Polish various test classes
Delete unused imports in spring-test
Add first draft of IDEA code formatting

This commit provides a first attempt at defining a standard code
formatting scheme for the Spring Framework in Intellij IDEA.

These are the major changes compared to standard settings:

* default indent option to use tab character instead of space for
  all languages
* one space before the left brace of an array initializer
* keep when reformating: multiple expressions in one line,
  simple blocks in one line
* method declaration parameters: do not align when multiline
* else, catch and finally on new line
* keep one space before } (solely use to keep the space between the
  end of the last method and the end of the class)
* minimum blank line after class header 0 (instead of 1)
* Disabled Javadoc formatting
* class count to trigger static import to 50 (to prevent
  import org.foo.*; instead of listing the classes of org.foo)
* changed the import sequence to import in the following order:
  static imports, java.*, javax.*, others, org.springframework.*. Each
  sequence is separated by a space
Update copyright date in reference manual
Update links to Spring JIRA server