Using SmartLifecycle to register MBeans

Prior to this commit, MBeans were registered in a post construct
call of MBeanExporter. This commit moves that logic after the
initialization phase using the SmartLifecycle callback.

Issue: SPR-8045
polishing

Reorganized class structure to match our code style (setter for
properties at the top of the class, public method before private
implementation).

Removed DisposableBean as it the lifecycle is already taking care
of removing MBeans on stop.

Cleaned test suite

Issue: SPR-8045
Merge pull request #551 from mdeinum/SPR-8045

* SPR-8045:
  polishing
  Using SmartLifecycle to register MBeans
Fix callout formatting issue
Fix typo

Issue: SPR-11862
Add Spring View support for Groovy Markup Templates

This commit adds support for Groovy Markup templates.
Spring's support requires Groovy 2.3.1+.

To use it, simply create a GroovyMarkupConfigurer and a
GroovyMarkupViewResolver beans in the web application context.

Issue: SPR-11789
Add resolveTemplate method to Groovy markup configurer
Fix failing test
Add "mvcUrl" function to Spring tag library

This commit adds a new function to the Spring tag library for preparing
links to @Controller methods. For more details see the Javadoc of
MvcUriComponentsBuilder.fromMappingName.

Issue: SPR-5779
Rename HttpStatus 308 to Permanent Redirect

Issue: SPR-11854