custom transport: 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.
custom transport: wildcards

Allow users to configure wildcards for their custom transports,
so that they get all possible inputs to the transport mechanism.
Query callbacks now get the scheme of a URI to allow them to determine
whether they're interested in proceeding or not.  Initilization
callbacks also get the same scheme and URL so that they can reason
about their callbacks in the same way the query callback does.

Now that we have separated the scheme, we should use it in our
special casing for file and ssh handling, in the case that the user
has decided that they want to handle file or ssh URLs.