arti_client: Restructure client construction API
IMO:
One should construct a new client like this:
use arti_client::tokio_native_tls as tor; 
tor::TorClient::new_config().some_setting(42)?.bootstrap()?`I.e.:
- 
bootstrapshould be a method onTorClientCfg, not an inherent impl onTorClient. (I think providing the same function with two names is confusing unless it's done for convenience for a the function which is is used very frequently.)
- 
The distinction between TorClientConfigBuilderandTorClientCfgshould be abolished. The distinction between validated and unvalidated configs should not be exposed; instead,bootstrapshould operate on the unvalidated config and validate it before proceeding.
- 
There should be modules with ready-specialised (for runtime, etc.) versions of TorClientetc. which avoids having to wrestle runtime and other generics.
See also #278 (closed), which requests a version of bootstrap that does lazy init instead.  That would be another method on TorClientCfg.