Custom transports: callback to allow callers to punt

Provide an entry point before the transport is selected, to allow
custom transports to decline an operation.  This may allow binding
authors more flexibility, particularly in environments where multiple
concurrent instances may be targeting the same libgit2 (eg, .NET
AppDomains).

Additionally:
 * Move the transport registration mechanisms into a new header under
   'sys/' because this is advanced stuff.
 * Remove the 'priority' flag from the registration as it adds unnecessary
   complexity.  Users who require per-priority transports can implement
   that in their custom transport themselves.