if there's no salt available, don't make a cheap one

fixes #40
let ykp_AES_key_from_hex() return error
set errno for errors in ykp_HMAC_key_from_hex()
prompt for key on stdin if -a is given without key
add YKP_ENORANDOM for when there's no random available
make ykp_get_supported_key_length() exported
use ykp_get_supported_key_length() to get key length
make the ykp_get functions take a const YKP_CONFIG*
fix logic of ykp_get_supported_key_length()

was reporting wrong size for yubico-challenge
add functions to set AES and HMAC key from raw bytes
add code for generating random key
better text about HMAC

key must be 40 bytes
use ykp_get_supported_key_length()
more text about -a
drop salt parameter to ykpers-args
update man page for ykpersonalize