Implement AEAD-ChaCha20-Poly1305.

This implementation is based off the description in RFC 7539.

The ChaCha20 code is also updated to provide a means of generating
keystream blocks with arbitrary counter values. This is used to
generated the one-time Poly1305 key in the AEAD construction.
diff --git a/library/version_features.c b/library/version_features.c
index babf2c7..64aa9f6 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -516,6 +516,9 @@
 #if defined(MBEDTLS_AES_C)
     "MBEDTLS_AES_C",
 #endif /* MBEDTLS_AES_C */
+#if defined(MBEDTLS_AEAD_CHACHA20_POLY1305_C)
+    "MBEDTLS_AEAD_CHACHA20_POLY1305_C",
+#endif /* MBEDTLS_AEAD_CHACHA20_POLY1305_C */
 #if defined(MBEDTLS_ARC4_C)
     "MBEDTLS_ARC4_C",
 #endif /* MBEDTLS_ARC4_C */