Add MacMismatchError and ApiUsageError

When verify() detects that the MAC is incorrect,
it will issue a user-defined MacMismatchError exception
and not the standard ValueError mismatch.

When a method of a Cipher class is invoked while it shouldn't be,
it will issue a user-defined ApiUsageError. Incorrect
parameters still raise a ValueErorr exception.
Merge branch 'ccm' into new_cmac
Add EAX authenticated encryption mode