Add upload command with session and identity persistence
Implement the full upload flow: read file, encrypt with AES-256-GCM,
upload blob to PDS, wrap content key to owner's X25519 pubkey, create
document record. Files >50MB are rejected before upload.
Split config.rs into config/session/identity modules with shared JSON
persistence helpers. Login now saves session to disk and generates an
X25519 keypair on first use. All commands load the authenticated client
from the saved session.
Update reqwest 0.12 → 0.13 (rustls-tls → rustls feature rename).
Add Document::new() constructor to keep schema version in one place.
Re-export OsRng and x25519_dalek types from opake-core so the CLI
doesn't depend on crypto crates directly.