Add an AEAD EVP interface to libcrypto, along with AES-GCM AEAD
implementations. This largely pulls in Adam Langley's AEAD patches from
Chromium's OpenSSL.

ok miod@
KNF.
KNF.
KNF.
Add a ChaCha20-Poly1305 AEAD EVP implementation to libcrypto, from Adam
Langley's Chromium OpenSSL patches.

ok miod@
KNF.
Use C99 initialisers for the AEAD struct.
More KNF.
No longer make pqueue.h a public (and installed) header file. Replace its
inclusion in <ssl/dtls1.h> by the benign
`struct _pqueue; typedef struct _pqueue *pqueue;'.

Note that said dtls1.h should probably be considered a private header as well...

ok beck@
Replace ASN1_GENERALIZEDTIME_adj(), ASN1_UTCTIME_adj() and
ASN1_TIME_to_generalizedtime() with wrappers around their former
implementations, making sure memory allocated is freed in all failure cases.

help and ok from beck@ and Brendan MacDonell.
Fix memory leaks upon failure.
ok beck@