Check if new keys being set are the correct length, since longer or shorter keys yield inconsistant results

According to tests, calling `ykpiv_hex_decode` on a string that is not of length `MAX_LEN * 2` (multiplied by two because hex ascii values are two characters) yield different results each time the test is run. This simply checks if the length of the string is correct before writing a value, to avoid bricking a device by writing an irretrievable key.