Would-be fix for bug 7733: learn bridge ID from descriptor

If somebody has configured a client to use a bridge without setting
an identity digest (not recommended), learn the identity digest from
whatever bridge descriptor we have downloaded or have in our cache.
Fix configure script build with autoconf < 2.63

We added some AS_VAR_IF-based checks to detect whether we have
managed to compile (but not link) with stack-protector.  On autoconf
before 2.63, we don't have AS_VAR_IF, so we just have to let the
user get a compile error rather than a helpful "find libssp" error.

Fixes bug 12693; bugfix on 0.2.5.2-alpha (commit 21ac292820da578)
Add the ed25519 ref10 code verbatim from supercop-20140622

We might use libsodium or ed25519-donna later on, but for now, let's
see whether this is fast enough.  We should use it in all cases when
performance doesn't matter.
Integrate ed25519_ref10 into our build system.
Add some explicit casts as needed to make ed25519_ref10 compile

Apparently, ref10 likes implicit conversions from int64 to int32 more
than our warnings do.
Add headers as needed to make ed25519_ref10 compile.
ed25519_ref10: use uint64_t and int64_t, not long long
Rename secret_to_key to secret_to_key_rfc2440
Move secret-to-key functionality into a separate module

I'm about to add more of these, so we might as well trudge forward.
systemd unit file: set up /var/run/tor as writable for the Tor service.

For some strange reason, this was not needed with systemd v208.
But it's needed with systemd v215 on current Debian sid, and entirely
makes sense.
Add changes file for #13196.

Note that this will likely need to be folded with the changes file for #12751,
as this change is a mere fixup on top of the changes introduced for #12751.
Stop silently skipping invalid args to setevents

Return an error when the second or later arguments of the
"setevents" controller command are invalid events. Previously we
would return success while silently skipping invalid events.

Fixes bug 13205; bugfix on 0.2.3.2-alpha. Reported by "fpxnns".
get rid of trivial redundant comment
get rid of routerstatus->version_supports_optimistic_data

Clients are now willing to send optimistic circuit data (before they
receive a 'connected' cell) to relays of any version. We used to
only do it for relays running 0.2.3.1-alpha or later, but now all
relays are new enough.

Resolves ticket 13153.
Use optimistic data even if we don't know exitnode->rs

I think we should know the routerstatus for our exit relay, since
we built a circuit to it. So I think this is just a code simplication.
clients use optimistic data when reaching hidden services

Allow clients to use optimistic data when connecting to a hidden service,
which should cut out the initial round-trip for client-side programs
including Tor Browser.

(Now that Tor 0.2.2.x is obsolete, all hidden services should support
server-side optimistic data.)

See proposal 181 for details. Implements ticket 13211.
Merge remote-tracking branch 'intrigeri/bug13196-systemd-writable-run-directory'
Merge remote-tracking branch 'public/bug7733a'
changes file for 7733
Merge remote-tracking branch 'arma/feature13153'