Cleanup URL parsing and support remote Docker API endpoints

I only do this if the user specifies one, otherwise the Docker API does the following:

    @url ||= ENV['DOCKER_URL'] || ENV['DOCKER_HOST'] || default_socket_url

Plus it leads to somewhat ambiguous behavior / output during the driver registration phase when we parse the driver name without a URL component