Services based on URLs

A big rewrite of services to remove a lot of different accessors (`host`, `hosts`, etc.) while preserving backwards compatibility.
Could we not use urllib.parse.unparse for all of this?