Import Keccak/SHA3 code from code.google.com/p/go.crypto/sha3,
changeset:   225:c9a0e9891d8f
Partly-done experimental work on generic sponge cipher framework
Doc tweaks
Merge branch 'lld-ford-sponge' into sponge
Merge branch 'master' into sponge
Got abstract Sponge framework initially defined and compiling.
Prepare for SHA3 adaptation by assimilating sha3 code from
code.google.com/p/go.crypto changeset 226:d41578056516
SHA3-based implementation of Sponge appears to be working,
at least for purposes of implementing SHA3 hashes.
Add constructors for SHAKE128/256 sponges;
get tests for SHAKE-based hashes working again.
Assimilate Dmitry Chestnykh's Pure Go implementation of BLAKE2 from
https://github.com/dchest/blake2b
commit 5f5d76d6123cf9d8b5a3b0fb40ff7a9ec158f7bb
Update NIST ciphersuites to provide a SHA3-based Sponge
Assimilate Coda Hale's optimized C implementation of BLAKE2 from
https://github.com/codahale/blake2
commit 3fa823583afba430e8fc7cdbcc670dbf90bfacc4
partially complete adaptation of BLAKE2b to sponge-cipher mode
BLAKE2 dirs at least build now, but don't test correctly yet
Add experimental high-level stateful stream Cipher interface
Remove experimental BLAKE2-based sponge code;
seems likely to be a dead-end especially given that there is other,
probably more careful and robust work on adapting BLAKE2
into a sponge cipher (e.g., NORX).

Keeping this code in a separate branch in case I want to resurrect it
purely as a multi-alternative implementation (e.g., pure Go vs optimized C)
of BLAKE2 as a hash function (for which more work would still be needed).
comment note
Add SHA3-based sponge to other ciphersuites, at least tentatively