added more support for the git plugin

This pull request adds more built-in support for the git plugin. It adds a new git scm method which takes a single closure argument and allows to configure advanced git options using the DSL. This existing git and github methods have been changed to delegate to the new closure.

```groovy
scm {
    git {
        remote { // can be repeated to add multiple remotes
            name(String name) // optional
            url(String url) // use either url or github
            github(String ownerAndProject, String protocol = "https", String host = "github.com") // will also set the browser and GitHub property
            refspec(String refspec) // optional
            credentials(String credentials) // optional
        }
        branch(String name) // branch names are accumulated, defaults to **
        branches(String... names)
        mergeOptions(String remote = null, String branch) // optional
        skipTag(boolean skipTag) // optional, defaults to false
        wipeOutWorkspace(boolean wipeOutWorkspace) // optional, defaults to false
        remotePoll(boolean remotePoll) // optional, defaults to false
        shallowClone(boolean shallowClone) // optional, defaults to false
        relativeTargetDir(String relativeTargetDir) // optional
        configure(Closure withXmlClosure) // optional
    }
}
```