Support passing URL's subject to the driver [IMMUTANT-197]

We also delegate defaults for missing attributes to the driver itself
now, and factored a bunch of common logic into the base class.