Support calls to libgit2 without GIL

To enable, use Rugged.without_gil = true

This allows threaded applications to benefit from threading.
Only the expensive operations of libgit2 are hooked.
The ones with callbacks are not hooked.

---

I wouldn't say that it's production ready, but the goal of this pull request is more to open a discussion. The old behaviour is preserved by default (Rugged.without_gil == false), so there is no harm in merging though.