Support for @Order at the bean declaration level

This commit introduces OrderProvider and OrderProviderComparator, two
interfaces designed to externalize how a collection of element is sorted
according to their order value.

FactoryAwareOrderProvider is an OrderProvider implementation that knows
about the objects to order and the corresponding BeanFactory instance.
This allows to retrieve additional metadata about the actual instances
to sort, such as its factory method.

A @Bean method can now holds an additional @Order to define the order
value that this bean should have when injected as part of a collection
or array.

Issue: SPR-11310
Fix a typo
Merge pull request #553 from AlexYursha/patch-1

* patch-1:
  Fix a typo
Moved @Uses annotations to org.springframework.lang; fixed Base64Utils to declare Java 8, and fixed PathResource's declaration to refer to Java 7.

Issue: SPR-11604
Polishing
DefaultSubscriptionRegistry's removeSubscriptionInternal defensively handles non-existing destinations

Issue: SPR-11832
Support Groovy Markup templating in Spring MVC

Solution #1

This commit adds support for Groovy templating, available as of
Groovy 2.3.0 (and 2.3.1 for advanced use cases, such as layouts and
fragments).

To enable this, one should create a new GroovyMarkupViewResolver
Bean in their application context.

Issue: SPR-11789
Support Groovy Markup templating in Spring MVC

Solution #2

This commit adds support for Groovy templating, available as of
Groovy 2.3.0 (and 2.3.1 for advanced use cases, such as layouts and
fragments).

To enable this, one should create a new GroovyMarkupViewResolver
and a new GroovyMarkupConfigurer Beans in their application context.

Issue: SPR-11789