Validation: adding multiple rule namespaces support

Allows an implementer to override definitions of rules, each added namespace takes priority over the default one

Also: 
- reduced complexity/customization of "matching" rule
- added extension points for downstream modification
- allow `->setRule()` to accept rules in an array vs. just piped-delimited
- added run-completion logic to prevent retrieving pre-validated data
- Swapped to proper PSR-4 namespace (added vendor)
Isn't this the only file defining it so it would be a constant here? I didn't see it anywhere else in the repo, then again github search is not the best