Add specification for pluggable transport client registration.

Spec changes

tarnsport design.txt
Update RegSet API.
Parse relay file.
Update TCPReg to support transports.
Support new client registrations.
Support new flashproxy polling.
Improve logging a bit.
Log the number of unhandled registrations.
Use "transport" instead of "transports" in flashproxy polls.
GET command: Do "TRANSPORT=obfs2 TRANPSORT=obfs3" instead of "TRASPORTS=obfs2,obfs3".
Replace -r switch to load a relay file.
Improve client registration parsing.

Don't differentiate between old-style and new-style registrations.
Turn transport chains into tuples.
Fix a bug when handling FieldStorage.getlist() return values.

getlist() returns the empty list when it doesn't find a value, not None.
Question marks for query strings.

As noticed by Ximin.
https://trac.torproject.org/projects/tor/ticket/9349#comment:20
Just include outermost transports in facilitator responses.

This is in contradiction to what I proposed in
https://trac.torproject.org/projects/tor/ticket/9349#comment:20. Really
there's no need for the proxy to know that there's obfs2 underneath; it
just has to make a connection and copy bytes.
Polling requests include client port numbers.
Punctuation.
Straighten up handling of --relay-file.
Make it only a warning if no relays were configured.