Add support for various AEAD modes + CMAC 

This changeset adds support for the following AEAD modes:

* CCM (RFC3610 and NIST 800SP-38C)
* EAX (not officially standardized, but simpler and more flexible than CCM)
* SIV (RFC5297)
* GCM (NIST 800-38D)

Additionally it also adds suport for CMAC (RFC4493 or NIST 800-38B).

Rationale about the API is given in Doc/AEAD_API.txt .