Subtransport logic.

Introduce subtransport registration into libgit2sharp.
I see what you're doing here, but using `NameConflictException` may be a bit of a stretch. libgit2 returns EEXISTS.

@carlosmn @dahlbyk Can you think of something that may bear the notion of duplication? The .Net framework has a DirectoryExistsException. Can't we expose a EntryExistsException or something like this?