Implement SCM Options API, and add 'branch', 'clean', 'depth' options to GitSCM

Implements the SCM Options API and some options for GitSCM