Add sketched-out pluggable transport APIs (part 1)
This branch adds APIs based on the draft in !704 (closed). It covers the APIs up through "PART 3: Pluggable transports".
Some of the APIs are slightly tweaked so that they compile.
Most/all of the TODOs for this particular branch are labeled as TODO pt-client
to make them easier to grep for.
Edited by Nick Mathewson