Enforce recommended and required protocol versions in arti-client
See the specification for a description of the behavior here.
Briefly, this MR makes it so that arti-client knows which protocol versions it supports, and will watch for any recommended or required protocols that it does not support. On a missing recommended protocol, it will warn. On a missing required protocol, it will give an error and exit. The exit behavior can be overridden.
Closes #1849 (closed).
Closes #1923 (closed).
Does not address these follow-up issues: #1932, torspec#319 (closed).