State logic for onion services
To make onion services work, we need to store state information. Some of this is keys (see #728 (closed)); other information includes the .onion address, a set of client public keys, and so on.
We should look at the existing Tor onion service disk storage format, and see if we want full, partial, or no backward compatibility.