Implement HS state management
This is the machinery which records HS state, isolates different clients (isolations, keys, services).
The function which does the actual work is still just a todo.
I think the next thing I want to do with this is to try to see if I can get connect
to download a descriptor from a live real-world HS directory. I think that ought to be possible fairly soon...