C35 source-shadow ports

VectorizedWarmPaint preserves the original VectorizedImage -> VectorArtwork
content-raster lifetime before export cloning. It calls the existing qualified
cache/paint code using a genuinely prepared restored source and retains that
source owner; no measured raster size or source pixels are rendering input.
Application source authority: retained C35 reference-a2 src/utils/VectorArtwork.js
and VectorizedImage.js, plus actual repeated source cache observations. The
source component/control-change evidence is under diagnostics/neplex-cache-a1.

GroupCachePlan.php ports Refabric/Fabric Group._getCacheCanvasDimensions and the
source object cache boundary. Shadow argument/state helpers preserve the actual
application's distinct primitive/TEXT/IMAGE constructors and Canvas/SVG phases.
Reference: read-only installed fabric/dist/index.mjs, Group cache methods near
lines9600-9630, Object shadow methods near6312-6333 and Shadow near4324-4400.
Exact behavioral authority is recorded by the independently captured C35 oracle.

Fabric.js / Refabric portions are distributed under the MIT license. The complete
retained license is ../BoundedC27/FABRIC-LICENSE.txt. Copyright (c)2008-2015 Printio
(Juriy Zaytsev, Maxim Chernyak); copyright (c)2016-present Andrea Bogazzi,
Shachar Nen and Fabric.js contributors. This notice does not replace that license.
The existing local native shadow filters retain their own source-Skia notices.
Chromium CanvasPattern paint-state semantics used by ForeignMaskPaint:
Copyright 2014-2018 The Chromium Authors. BSD-style license retained in
CHROMIUM-LICENSE.txt. Diagnostic source tag156.0.8078.4 resolves to commit
f842f52ef39fd97b449eb27cff414bf05a98ddce; exact source/provenance retained under
dev/print-engine/shadows-c35/diagnostics/pattern-primary-a1/.
CanvasStyle pattern assignment retains target paint's default dither=false;
the temporary gradient Canvas owns its own gradient dither state. The Canvas
recorder classifies every pattern fill/stroke as a nonopaque image for shadow
compositing, independently of encoded image opacity. The pattern shader receives
the actual current native Canvas matrix after strokeUniform scaling, before
the source filler translation. See CanvasStyle::ApplyToFlags, Pattern::ApplyToFlags,
CorePaintFlags defaults and Canvas2DRecorderContext path/rectangle dispatch.

