tor-dircommon: Support proposal330
This merge requests introduces proposal330 for storing dirports in tor-dircommon.
As a notable difference: This MR uses SocketAddr instead of URLs to store the relevant infomration for the following reasons:
- Prop330 places so many constraints on URLs that it is equivalent to a
SocketAddr - A URL is centered around the path segment, which we do not even make use of
- Prop330 does not define how to treat components like the path, query, segment, username, password.
- Not using a URL parser saves us a dependency.
Fixes #1738 (closed)