Fixed build with cognate plugin names
GRAILS-9928 - improve the handling of wrapper downloads

The old logic was something like this:

if downloadFile does not exist
    download to downloadFile
end if

if installDir does not exist
    extract downloadFile to installDir
end if

This was problematic if downloadFile exists and installDir does not exist and downloadFile is not a valid zip file.  This would happen if an earlier attempt was made to download to downloadFile but for some reason could not be completed.  That would lead to attempting to extract an invalid zip file.

The new logic is something like this:

if installDir does not exist
    download to downloadFile
    extract downloadFile to installDir
    delete downloadFile
end if
Merge branch '2.2.x'
Introduce Hal Xml binding source
mark class with @CompileStatic
GRAILS-10336 - mark exception class with @CompileStatic
GRAILS-10336 - mark exception classes with @CompileStatic
GRAILS-10336 - mark exception classes with @CompileStatic
Merge branch '2.2.x'
Updated Spring and SLF4J
Fix null pointer issue when attrs are not supplied to withTag
Merge branch '2.2.x'
Merge pull request #389 from bobbywarner/versions

Updated Spring and SLF4J
fix failing test
Merge branch '2.2.x'
fix for GRAILS-10347 "grails plugin-info throwing GroovyCastException in Grails 2.3.0 RC1"
fix for GRAILS-10097 "Aether's dependency resolution does not work behind a proxy"
fix for GRAILS-10325 "command line system properties not passed to the forked process"
GRAILS-10303 - deprecate BindDynamicMethod
GRAILS-10376 - improve GPathResultMap handling of non-existent keys

get(key) should return null for non existent keys, not an empty string