Improve the DSL to allow the use of properties within its closures

Prior to this commit, properties could not be used with the various
closures that are used in the DSL. For example, it wasn’t possible to
configure the version of a managed dependency using a property.

This commit updates the closure delegates to delegate missing properties
to the underlying Project. This enables the use of properties:

ext.springVersion = ‘4.1.1.RELEASE’
ext.slf4jVersion = ‘1.7.7’

dependencyManagement
    dependencies {
        "org.springframework:spring-core" springVersion
        "org.springframework:spring-beans" "$springVersion"
        dependencySet(group: 'org.slf4j', version: slf4jVersion) {
            entry 'slf4j-api'
        }
    }
}

It also updates the closures to use a DELEGATE_FIRST resolve strategy
(rather than DELEGATE_ONLY). This makes the project accessible:

dependencyManagement {
    dependencies {
        "org.springframework:spring-tx" project.ext['springVersion']
    }
}

Closes #17