feat(consent): add consent management with registration checkbox
Add a new 'consent' module: a directory of consents (context, language, title, HTML text, version, required/active flags) and an acceptance log (user_id nullable, consent_id, version, ip_address, accepted_at).
Expose a programmatic ConsentService (get active consents per context with current-locale resolution and default-language fallback; write to the log). Add admin CRUD at /admin/consents with a CKEditor text field and a log view, plus a public /consent/{id} page (HTMLPurifier on output).
Wire the registration form: render unchecked checkboxes for active 'register' consents, block submission until required ones are accepted, and record acceptance server-side on success. Add sidebar menu item and translations.