Prepend adapters as they are registered

Appending adapaters as they are registered doesn't allow a programmer
to override a previously-registered adapter, meaning that a misbehaving
library can force everyone to use a particular adapter for a given
URI scheme.

This simply prepends adapters as they are registered, implementing
a "last-loaded wins" strategy for picking which adapter to use for
a given URI scheme.