Adds git config management features to git state module

Also applies some fixes to the git exec module that removes an unnecessary requirement to always have a repository, even when operating globally.

Note: I made some changes to the order of parameters in `modules.git.config_set()` and `modules.git.config_get`. I'm not in love with this because some people might have scripts that rely on positional parameters and this would break backwards compat with that but, otherwise, this would fail lint'ing as PEP8 requires that arguments with defaults always appear after arguments without defaults. I can change it either way.