Add pkcs7_pad and pkcs7_unpad functions for block cipher modes:
- Pad data to block size multiples with N bytes of value N
- Validate and remove padding on decryption
- Add InvalidPadding variant to CipherError
Document BlockCipher, InputBlock, and BlockParser with usage examples
and method descriptions. Fix incorrect error message in decrypt() that
referenced "plaintext" instead of "ciphertext".
Move duplicated macro definitions from aes and des crates into
cipher-core for shared use. Both macros now:
- Support u8 through u128 integer types
- Include Zeroize derive for secure memory handling
- Generate consistent formatting and conversion methods
Add generic BlockInt trait and parse_block_int<T>() function to
cipher-core, eliminating duplicate parsing code in aes and des crates.
- BlockInt trait abstracts over u64/u128 integer types
- Supports hex (0x), binary (0b), and ASCII string formats
- Improved BlockError::InvalidByteStringLength with max/actual fields