feat: surface InvalidPasswordError on wrong-password failures
wrong AES keys decrypt the pack stream to garbage, which up to now bubbled
up as MalformedArchiveError (LZMA range decoder) or as a header parse
error on encrypted EncodedHeaders. wrap folder decode, encoded-header
decode, and the subsequent parseHeader call: when the affected folder
includes an AES coder and the caller supplied a password, swap the error
for InvalidPasswordError so a retry-with-different-password flow is
catchable.