prop224: Client introduction point establishment

Implement the client introduction point establishment process and logic for proposal 224.

  • Pick IP from descriptor.
  • Use IP failure cache.
  • Open introduction circuit.
  • Setup circuit identifier on intro circuit.
  • Generate/Send INTRODUCE1 cell.
  • Handle INTRODUCE_ACK cell.

In legacy code, see rend_client_send_introduction() and rend_client_introduction_acked() in src/or/rendclient.c