Create new submodule update target to run git submodule update

My current project needed to perform submodule updates during the build process, so I added this functionality into grunt-git. I tried to maintain the current style, but did do one thing very differently: Instead of pushing options onto the args array individually, I do so in a loop that loops through an array of ``acceptableOptions``. This way, only options that we are expecting will be passed to the child process, and those that might cause an error (e.g. ``verbose``) will not be. 

**I'm happy to convert it to the more explicit method used elsewhere in this repo if you would prefer.**

All CLI flags for git-submodule-update are supported by this patch, though I suspect that most folks will only use *init* and *recursive*. 

I've also updated the README to include documentation for the new task, and added tests for each option.
This is a potential problem: if depth is specified and set to zero, then it will not be set in the loop below (since it will be skipped on line 26: ``if (... options[optionKey])``). We can avoid this by changing line 26 to be:
```js
if (options.hasOwnProperty(optionKey) && (options[optionKey] || options[optionKey] === 0))
```
Alternatively, we could remove depth from this object, and specify it explicitly down where path and noFetch are specified.