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.