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>
I have not found in the NIST docs how big a challenge could be. The example in 800-73-2  A.1 and Table 11, where it is using alg_id=0, (3des)  the card returns 8 bytes.  
Note : piv_get_challenge uses alg_id=0 and 9B key to get an 8 bytes of challenge from card. It may need changes 
if the challenge can be longer.