Teach the get_mozilla_ciphers.py script to parse recent firefoxen
Update ciphers.inc to match ff28

The major changes are to re-order some ciphers, to drop the ECDH suites
(note: *not* ECDHE: ECDHE is still there), to kill off some made-up
stuff (like the SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA suite), to drop
some of the DSS suites... *and* to enable the ECDHE+GCM ciphersuites.

This change is autogenerated by get_mozilla_ciphers.py from
Firefox 28 and OpenSSL 1.0.1g.

Resolves ticket 11438.
New sort order for server choice of ciphersuites.

Back in 175b2678, we allowed servers to recognize clients who are
telling them the truth about their ciphersuites, and select the best
cipher from on that list. This implemented the server side of proposal
198.

In bugs 11492, 11498, and 11499, cypherpunks found a bunch of mistakes
and omissions and typos in the UNRESTRICTED_SERVER_CIPHER_LIST we had.
In #11513, I found a couple more.

Rather than try to hand-edit this list, I wrote a short python script
to generate our ciphersuite preferences from the openssl headers.

The new rules are:
  * Require forward secrecy.
  * Require RSA (since our servers only configure RSA keys)
  * Require AES or 3DES. (This means, reject RC4, DES, SEED, CAMELLIA,
    and NULL.)
  * No export ciphersuites.

Then:
  * Prefer AES to 3DES.
  * If both suites have the same cipher, prefer ECDHE to DHE.
  * If both suites have the same DHE group type, prefer GCM to CBC.
  * If both suites have the same cipher mode, prefer SHA384 to SHA256
    to SHA1.
  * If both suites have the same digest, prefer AES256 to AES128.
Elevate server TLS cipher preferences over client

The server cipher list is (thanks to #11513) chosen systematically to
put the best choices for Tor first.  The client cipher list is chosen
to resemble a browser.  So let's set SSL_OP_CIPHER_SERVER_PREFERENCE
to have the servers pick according to their own preference order.
Supply better and less frequent warnings on circID exhaustion

Fixes the surface behavior of #11553
Forbid TunneledDirConns 0 and PreferTunneledDirConns 0 if being a HS

Fixes bug 10849; bugfix on 0.2.1.1-alpha (I believe)
Stop leaking memory in error cases of md parsing

When clearing a list of tokens, it's important to do token_clear()
on them first, or else any keys they contain will leak.  This didn't
leak memory on any of the successful microdescriptor parsing paths,
but it does leak on some failing paths when the failure happens
during tokenization.

Fixes bug 11618; bugfix on 0.2.2.6-alpha.
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Drop the MaxMemInCellQueues lower limit down to 256 MB.

on #9686, gmorehose reports that the 500 MB lower limit is too high
for raspberry pi users.

This is a backport of 647248729fa65f0e51d062e2af8f4e8b38592bf5 to 0.2.4.

Note that in 0.2.4, the option is called MaxMemInCellQueues.
Merge remote-tracking branch 'public/bug10849_023_bruteforce' into maint-0.2.3
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Downgrade bug 7164 warning to INFO

The 0.2.5.x warning is the one that might help us track this down; the
warnings in stable are just annoying users over and over and over.
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4

Conflicts:
	src/or/microdesc.c
Merge remote-tracking branch 'public/update_ciphers_ff28' into maint-0.2.4
Merge remote-tracking branch 'public/bug11513_024' into maint-0.2.4
Merge remote-tracking branch 'public/ticket11528_024' into maint-0.2.4
Merge commit 'bb9b4c37f8e7f5cf78918f382e90d8b11ff42551' into maint-0.2.4
Bump maint-0.2.4 version to 0.2.4.22-dev

(See discussion on #9553)