Implement describe style setting and functionality.

This replicates/ports the functionality for configuring how commits checked out as a detached HEAD are represented in the prompt that is available by setting GIT_PS1_DESCRIBE_STYLE for the bash version of the git prompt (https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh). This change adds a property called DescribeStyle to GitPromptSettings which takes the same arguments described in the comments for the bash script:

* **contains** - relative to newer annotated tag (v1.6.3.2~35)
* **branch** - relative to newer tag or branch (master~4)
* **describe** - relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
* **default** - exactly matching tag