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.
Do not launch pluggable transport plugins when DisableNetwork is set.

When DisableNetwork is set, do not launch pluggable transport plugins,
and if any are running already, terminate the existing instances.
Resolves ticket 13213.
Require two c99 features (midblock decls, designated initializers)

c99 lets us do neat stuff like:

    {
      int j, k;
      foo(&j, &k);
      int z = j + k;
    }

and also
    struct point { int x; int y; };
    struct point pt = { .x=5, .y=5 };

This commit makes the configure scripts check to make sure your
compiler implements them.  It also disables our longstanding warning
about midblock declarations.

Closes ticket 13233.
Tweak address.c to use a little c99 syntax

Since address.c is the first file to get compiled, let's have it use
a little judicious c99 in order to catch broken compilers that
somehow make it past our autoconf tests.
Tell autoconf to make the compiler act as c99

Apparently some compilers want extra switches.
More generic passphrase hashing code, including scrypt support

Uses libscrypt when found; otherwise, we don't have scrypt and we
only support openpgp rfc2440 s2k hashing, or pbkdf2.

Includes documentation and unit tests; coverage around 95%. Remaining
uncovered code is sanity-checks that shouldn't be reachable fwict.
Rudimentary-but-sufficient passphrase-encrypted box code.

See crypto_pwbox.c for a description of the file format.

There are tests for successful operation, but it still needs
error-case tests.
Tweak and expose secret_to_key_compute_key for testing

Doing this lets me pass in a salt of an unusual length.
Test vectors for scrypt from draft-josefsson-scrypt-kdf-00
Test vectors for PBKDF2 from RFC6070
Use preferred key-expansion means for pbkdf2, scrypt.

Use HKDF for RFC2440 s2k only.
Test a full array of s2k flags with pwbox test.

Suggested by yawning.
Adjust pwbox format: use a random IV each time

Suggested by yawning
Use trunnel for crypto_pwbox encoding/decoding.

This reduces the likelihood that I have made any exploitable errors
in the encoding/decoding.

This commit also imports the trunnel runtime source into Tor.