Add support for "namespaced" clients
It's probably a good idea, sooner or later, to support having clients that are isolated from one another not only in whether their streams can share circuits, but in other state information as well.
If we do this, we'll need a way to "namespace" different persistent objects, including state files, onion services, key managers, and so on.
The working plan is to put everything (state, keystores, etc) for a non-default namespace into ${STATE_DIR}/ns+{NAMESPACE}
. We might eventually migrate the stuff for the default namespace into ${STATE_DIR}/default
, but that's a separate issue. So long as we never other create any top-level state directories called ns+{...}
, we'll be fine.