Refactor common parts of parse_dir_authority_line and parse_dir_fallback_line

There's a lot of common code in parse_dir_authority_line and parse_dir_fallback_line that could be refactored into a shared function.

What needs to be done is:

  • identify common code
  • create a common loop that parses the key=value pairs it understands, deletes them, and leaves the rest alone
  • put that loop in its own function that takes pointers (or pointer pointers?), returns values in those that are included, and returns NULL in those that aren't.
  • check this loop's output from both functions to ensure they each get what they need, then do the specific bits on the remaining arguments
  • call a common function to parse the IPv4:Port at the start of the line, then delete it
  • call a common function to parse the hex digest, which should be the only remaining thing