Add CMAC; Add EAX, SIV, and GCM modes to Crypto.Cipher

NOTE: This branch is built on top of two other previous branches: **stronger_hmac_api** (with the new .verify() method for MACs) and **ccm** (with the new AEAD API). Each one has its own pull request open.

This change set adds support for:
* CMAC (RFC4493 or NIST 800-38B)
* EAX AEAD mode (not officially standardized, but simpler and more flexible than CCM)
* SIV AEAD mode (RFC5297)
* GCM AEAD mode (NIST 800-38D)

All come with test vectors.