fix #1256 enable commit-ish for generic deploy handler

For generic `/deploy` payload, we allow the url to define the commit to deploy (hash tag below).   The branch being fetch is still based on settings; however, we will checkout the givencommit when deploying.   Tests are included to cover Git and Hg plus error scenarios.

```
{
  'url':'https://github.com/KuduApps/HelloKudu2.git#1234567',
  'format':'basic'
}
```
3 different checks for `!String.IsNullOrEmpty(deploymentInfo.CommitId)`. Maybe defining a bool like `deployingSpecificCommitId` would help readability a bit.