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/include/mbedtls/error.h b/include/mbedtls/error.h
index feeda79..72b7f18 100644
--- a/include/mbedtls/error.h
+++ b/include/mbedtls/error.h
@@ -78,6 +78,7 @@
  * SHA512    1                  0x0039-0x0039
  * CHACHA20  1                  0x003B-0x003B
  * POLY1305  1                  0x0041-0x0041
+ * AEAD_CHACHA20_POLY1305 2     0x0047-0x0049
  *
  * High-level module nr (3 bits - 0x0...-0x7...)
  * Name      ID  Nr of Errors