Bump libgit2 to 0.21.0
Update libgit2 bindings to 0.21

This commit also wraps some extra functions, but still not all of them.
Fix attached function

It was causing every installed package to be considered fixed.
Fetch and configure using libgit2 when possible
Add internal functions for common operations

This avoids having to call LibGit2 outside of Pkg.Git, which is always good
Use the new libgit2-based interface for most direct operations

read.jl is now fully libgit2-based
Add a new remote to load from the prefetched cache

As far as I know, there is no way to fetch from a bare repo without
adding a remote using libgit2.