feat(validator): add the rules for the new engine
Six wrappers (NotEmpty, StringLength, EmailAddress, InArray, Between, Identical) and six rules of the project (Flood, Ban, Captcha, ModelExists, ModelNotExists, MxRecord), each keeping the msgid it already had — the twenty catalogs need no new string.
NewValidatorCharacterizationTest runs the provider recorded from laminas against the new implementation: all 72 cases answer identically. Three places needed work to get there — Length measures the decimal notation of a number where the old engine rejected the type, Range refuses two bound messages at once, and Choice compares strictly, so InArray is a rule of ours that keeps the loose comparison a select posting "1" against integer ids depends on.
The legacy laminas rules move to Rules/Legacy so the new ones can take their names; the old validator keeps working.
MxRecord restores the DNS check registration, profile editing and the installer used to have, which Symfony has no equivalent for.