Add AES support for PIV General Authenticate

This adds algorithm IDs 0xA, 0xA, 0xC which as documented
by the NIST PIV specification is algorithms AES-128, AES-192
and AES-256 respectively.

This patch also addresses some of the hardcodes that prevented
nonces greater than the single byte TLV length tags would allow.
It was explicitly tested with AES-256 and 256 byte nonces.

Signed-off-by: William Roberts <w2.roberts@samsung.com>
case 0 is the same as case 3.
case 1 is a 2 Key Triple DES – ECB were the first and last des are the same. 
NIST 800-78-2 says the  2 Key Triple DES should not be used after 2010, but cards may still be out there 
that need it.