Make the discovery backend pluggable and discoverable based on a URL

Currently only one discovery backend exists and is indicated with the "hub://" url.  This is a possible implementation of https://github.com/docker/swarm/issues/157