refactor(CVG-51): extract @cv/handlebars with safe defaults shared across cv-renderer and mail
Both @cv/cv-renderer and @cv/mail were instantiating Handlebars independently - cv-renderer with safety hardening (safeUrl, DOMPurify-sanitized markdown helper), mail with bare global Handlebars. Hoisted createHandlebars(opts?) into a new @cv/handlebars package. Pre-registers safe defaults (hasItems, join, eq, safeUrl, markdown), accepts an optional helpers and sanitizeOptions override for surface-specific tweaks. cv-renderer's HandlebarsEngine and mail's HandlebarsTemplateService now both call createHandlebars() with no override, so they share the safety hardening. Drops handlebars/marked/dompurify deps from cv-renderer (now via @cv/handlebars), keeps a peer-style handlebars dep for the type. All 91 cv-renderer tests still pass; api+worker boot via docker compose.