Add pygit2 support to git fileserver backend

This pull request adds pygit2 support to the git fileserver backend, alongside the existing GitPython support. It establishes minimum requirements of 0.19.0 for both pygit2 and libgit2.

Additionally, a new master configuration file parameter ``gitfs_provider`` is added to manually specify which provider should be used. If this parameter is not present, pygit2 will be preferred over GitPython.

I've included language in these commits that targets this feature for the Helium release. @thatch45, let me know if this sounds good.

Reasons for adding pygit2 support:

1. GitPython wraps the git CLI, and expects the shell output to be very specific. Slight variances in the CLI output, such as an /etc/issue on the git server, or the ssh_config loglevel being verbose enough to add lines to the output, cause assertions to fail, sometimes making gitfs entirely unusable.
2. pygit2 uses libgit2, which (as @SEJeff notes [here](https://github.com/saltstack/salt/issues/4210#issuecomment-15503487)) enjoys a greater level of adoption.
3. pygit2 and libgit2 are more actively developed than GitPython. Case in point, as of today (3 January 2014) the most recent activity in the development branch was [283 days ago](https://github.com/gitpython-developers/GitPython/commit/660bdca125aa9dcca7a7730535bec433edb8ba02), while pygit2 has had a release as recently as 10 days ago, with a few major releases in the same span of time in which GitPython has seen *literally* zero activity.
4. pygit2 is compatible with Python 3, while GitPython is not. This will make the inevitable quest for Salt to support Python 3 that much easier.