Implement AES-256-GCM content encryption and decryption
RNG is injected via CryptoRng + RngCore parameters to keep
opake-core platform-agnostic — callers provide their own
randomness source (OsRng on native, crypto.getRandomValues on
WASM). Added conditional getrandom/js dep for wasm32 targets.
Documents multi-device key management as an open architectural
decision (CLAUDE.md #7) to be resolved before keystore work.