prop224: Make the client/service extend properly to the IP/RP

For a prop224 service to extend to a rendezvous point (RP) or a client to extend to a introduction point (IP), we need two things to change in the tor code.

  1. The extend_info_t object needs to support a list of "extra" link specifiers that should be put in the EXTEND2 cell if present. From proposal 224:
   The hidden service SHOULD NOT reject any LSTYPE fields which it
   doesn't recognize; instead, it should use them verbatim in its EXTEND
   request to the rendezvous point.
  1. The ed25519 identity link specifier (LSTYPE=03, see prop220), needs to be mandatory for both introduction and rendezvous points as detailed in prop224. So we need a way to tell the circuit subsystem that "this EXTEND2 cell is for IP or RP so put the ed25519 id in it".