Services based on URLs

A big rewrite of services to remove a lot of different accessors (`host`, `hosts`, etc.) while preserving backwards compatibility.
That would not support `netloc_parts`, which are readonly.