Mirror the existing storage-key length check for the WORM audit and
filter-ledger HMAC keys: resolve_engine_keys now converts each key's
Vec<u8> into a Zeroizing<[u8; 32]>, failing closed with a distinct
DatabaseError::KeyProvisioning message when a vault entry decodes to
the wrong length. Previously only the storage key was validated, so a
corrupted or hand-edited vault entry of any length would be silently
accepted as an HMAC signing key.
Refs #200