Automatically support all MACs in hashlib

This uses the name of the hash to automatically get the correct hash
object from Python's hashlib.
Add MAC tests to all CBC encrypted keys

This adds hmac-sha224, hmac-sha256, hmac-sha384 and hmac-sha512 tests
for values that are encrypted using CBC block cypher modes.
Handle missing MAC algorithm properly
Raise exception when MAC validation fails

This changes the way the check() function works to raise an exception
when the MAC is not correct. The MAC is also now always checked before
attempting decryption.

This also renames the internal DataType.value property to a get_value()
method for clarity.
Add tests for missing or invalid MAC

This tests for incomplete, unknown or invalid MACs in PSKC files.