Combine the MAC handling for both !EVP_CIPH_FLAG_AEAD_CIPHER and
EVP_CIPH_FLAG_AEAD_CIPHER into the same if/else block.
Switch the AES-GCM cipher suites to SSL_CIPHER_ALGORITHM2_AEAD.
Add ChaCha20-Poly1305 based ciphersuites.

Based on Adam Langley's chromium patches.

Tested by and ok sthen@
Rename a bunch of variables in ssl3_change_cipher_state() for readability.
This also brings it inline with tls1_change_cipher_state_cipher().
The export_key/export_iv variables are only used in the is_export case.
Also use c rather than &c[0].
Swap compress/expand around so they are in the correct order - these ended
up in the wrong order when the code was refactored.
Separate the comression handling from the cipher/message digest handling in
ssl3_change_cipher_state().
Do not bother trying to work out of we can reuse a cipher context - just
throw it away and create a new one. This simplifies the code and also
allows ASR to do its thing.