Allow ClientTransportPlugins to use proxies

This change allows using Socks4Proxy, Socks5Proxy and HTTPSProxy with
ClientTransportPlugins via the TOR_PT_PROXY extension to the
pluggable transport specification.

This fixes bug #8402.
Fixed the test build with --enable-gcc-warnings
Remove get_bridge_pt_addrport().

The code was not disambiguating ClientTransportPlugin configured and
not used, and ClientTransportPlugin configured, but in a failed state.

The right thing to do is to undo moving the get_transport_by_addrport()
call back into get_proxy_addrport(), and remove and explicit check for
using a Bridge since by the time the check is made, if a Bridge is
being used, it is PT/proxy-less.
Log the correct proxy type on failure.

get_proxy_addrport fills in proxy_type with the correct value, so there
is no point in logging something that's a "best guess" based off the
config.
Improve the log message when a transport doesn't support proxies.

Per feedback, explicltly note that the transport will be killed when it
does not acknowledge the configured outgoing proxy.
No longer advertise or negotiate any consensus method before 13.

Implements proposal 215; closes ticket 10163.

Why?  From proposal 215:

   Consensus method 1 is no longer viable for the Tor network.  It
   doesn't result in a microdescriptor consensus, and omits other
   fields that clients need in order to work well.  Consensus methods
   under 12 have security issues, since they let a single authority
   set a consensus parameter.
...
   For example, while Tor 0.2.4.x is under development, authorities
   should really not be running anything before Tor 0.2.3.x.  Tor
   0.2.3.x has supported consensus method 13 since 0.2.3.21-rc, so
   it's okay for 0.2.4.x to require 13 as the minimum method.  We even
   might go back to method 12, since the worst outcome of not using 13
   would be some warnings in client logs.  Consensus method 12 was a
   security improvement, so we don't want to roll back before that.
Remove support for generating consensuses with methods <= 9.

The last patch disabled these; this one removes the code to implement
them.
Remove implementation code for all pre-13 consensus methods.

Also remove a test for the way that we generated parameter votes
before consensus method 12.
changes file for bug 10163 / proposal 215.
When counting memory from closing a connection, count the dir conn too

Fix part of bug 11972
Count zlib buffer memory towards OOM totals.

Part of 11792.

(Uses the zlib-endorsed formula for memory needs for inflate/deflate
from "zconf.h".)
Kill non-tunneled directory connections when handling OOM.

Another part of 11792.
When looking for conns to close, count the age of linked queued data

Specifically, count the age of the data queued in a linked directory
connection's buffers when counting a stream's age.
Merge branch 'bug11792_1_squashed'

Conflicts:
	src/or/circuitlist.c
Terser ways to sandbox-allow related filenames

Using the *_array() functions here confused coverity, and was actually
a bit longer than we needed.  Now we just use macros for the repeated
bits, so that we can mention a file and a suffix-appended version in
one line.
Whitespace fixes
Remove the non-implemented versions of the sandbox _array() functions
Use the ARRAY_LENGTH macro more consistently.
Fix another memory leak case in sandbox.c:prot_strings()

This is related to the rest of 523587a5cf62119baa01822e2e783925726a790b
Remove the assigned-but-unused chosen_named_idx local variable

It had been used in consensus method 1.  But now that 13 is the
minimum (see #10163), we don't need it around.

Found by sysrqb.