Release 0.9.41

Fix VerificationControllerIT CI failure (HTTP 400 'invalid validation
policy' on the GitLab runner, passed locally).

Root cause: AuditLogIT saves a custom profile with isDefault=true and
stub XML '<policy/>' (9 bytes). The verification_profile table has no
UNIQUE constraint on is_default, so multiple default rows coexist and
findByIsDefaultTrue() can return the stub. On the runner, test ordering
put AuditLogIT before VerificationControllerIT, so the stub won;
locally the order was reversed and the canonical DSS profile won the
race, masking the bug.

Fix (ProfileSeeder.onReady): idempotent canonical-default upsert. If
the existing default's policy XML is byte-identical to the canonical
STANDARD XML loaded from classpath, skip. Otherwise overwrite (also
reset name/description/preset when the row is clearly a test stub,
e.g. name starts with 'default-').

Also includes:
- Bypass DSS ValidationPolicyLoader ServiceLoader fragility by
  instantiating EtsiValidationPolicyFactory directly
  (DssValidatorAdapter).
- Restore CI cache prefix to maven-v3 with a comment that points at
  the real root cause.

Tests: 187 unit + 15 IT pass locally on mvn verify; pipeline
test-ci-validation-006 (HEAD 597f338) confirmed green on the
GitLab runner.