Initial error-handling followups for !262

Here are some followup changes I'll make based on !262 (merged); these should be fairly uncontroversial.

  • Expand documentation on HasKind.
  • Expand documentation on ErrorKind and its variants.
  • On all Spawn variants (arti-client, tor-dirmgr, tor-guardmgr, tor-circmgr: say what task we failed to spawn.)
  • A few unit tests for TargetPorts::display.
  • Resolve TODO comment about assert_impl on arti_client::TorError
  • Resolve TODO comment about Clone on arti_client::TorError
  • Make sure we re-export ErrorKind and HasKind from arti_client.
  • Remove all public default references to the current Error enum in arti-client
  • A few tests for TorError and tor-error.

These may be more controversial, but hopefully not too much more. Let's talk a little first.

  • Rename arti_client::Error and arti_client::TorError to ErrorDetail and Error respectively. Same for *Result.
  • Make detail() a conditionally public accessor, not a conditionally public visible member.
Edited by Nick Mathewson