Implement a placeholder mechanism in the channel,id->circ map

We'll use this to help fix bug 7912, by providing a way to mark
that a circuit ID can't get reused while a DESTROY is queued but not sent.
When launching a resolve request on behalf of an AF_UNIX control, omit the address field of the new entry connection.  Fixes bug 8639.
Bug #5170 - remove id_to_fp.c as it's not used anywhere
Bug #5170 - i2d_RSAPublicKey supports allocating its own output buffer
Bug #5170 - also simplify i2d_DHparams
Bug #5170 - simplify i2d_X509
Bug 5170 - simplify i2d_PublicKey in pkey_eq
Add support for offsetting the voting interval in order to bootstrap faster.

A new option TestingV3AuthVotingStartOffset is added which offsets the
starting time of the voting interval. This is possible only when
TestingTorNetwork is set.

This patch makes run_scheduled_events() check for new consensus
downloads every second when TestingTorNetwork, instead of every
minute. This should be fine, see #8532 for reasoning.

This patch also brings MIN_VOTE_SECONDS and MIN_DIST_SECONDS down from
20 to 2 seconds, unconditionally. This makes sanity checking of
misconfiguration slightly less sane.

Addresses #8532.
Bug #5170 - test crypto_pk_get_all_digests
Bug #5170 - make pkey_eq testable, introduce test_tortls.c
Fix (Open?)BSD fast-connect bug with optimistic data.

There's an assertion failure that can occur if a connection has
optimistic data waiting, and then the connect() call returns 0 on the
first attempt (rather than -1 and EINPROGRESS).  That latter behavior
from connect() appears to be an (Open?)BSDism when dealing with remote
addresses in some cases. (At least, I've only seen it reported with
the BSDs under libevent, even when the address was 127.0.0.1.  And
we've only seen this problem in Tor with OpenBSD.)

Fixes bug 9017; bugfix on 0.2.3.1-alpha, which first introduced
optimistic data. (Although you could also argue that the commented-out
connection_start_writing in 155c9b80 back in 2002 is the real source
of the issue.)
Merge branch 'bug9017' into maint-0.2.3
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Merge remote-tracking branch 'origin/maint-0.2.4'
Merge remote-tracking branch 'majek/bug5170'
Make OPENSSL_free(dh_string_repr) conditional.
Fix "make check-spaces"
Fix tor-fw-helper exit code.

It's returning the number of initialized backends.

(changes file added by nickm; this is a fix for bug #9030)
Hide consensus download interval, depending on TestingTorNetwork, in a macro.
Use double-quotes for regular_mans, not brackets.

This is a bashism; on systems where sh is not bash (eg., non-Linux, or
Ubuntu using dash), this breaks with a syntax error. This also doesn't
work properly in bash: only the first item is iterated on.