Subtransport logic.

Introduce subtransport registration into libgit2sharp.
We need to be able to distinguish between subtransports that are RPC-based (request/response, like HTTP) and those that are not (connection based like the git protocol).  We need to do this on the class level (since libgit2 will instantiate a new subtransport instance, so it can't just be a method.)

The other option is to have an RpcSmartSubtransport subclass.  I prefer this approach but if you would prefer a different subclass, I can make that change.