Rewrite tls1_change_cipher_state.

The previous version of the function made adding AEAD changes very
difficult. This change should be a semantic no-op - it should be purely
a cleanup.
Add AEAD basic interface
Add AES-128-GCM AEAD support
Break up function to get the EVP_CIPHER.

In order to support using an EVP_CIPHER or EVP_AEAD, this change breaks
up the function that previous returned the correct EVP_CIPHER, hash and
compression function.
Support EVP_AEAD modes in ssl/

With this change, it's possible to use EVP_AEAD objects as the core of
an SSL ciphersuite.
Switch AES128-GCM-SHA256 to use EVP_AEAD.

As a proof of concept, switch AES128-GCM-SHA256 to use the EVP_AEAD
interface rather than an EVP_CIPHER.
Typo fix