Removed license from source file
Make test Callback a little more reusable
More json tson tests through provider
More null value tests through provider
More tests through provider for no whitespace
Allow empty unless NotEmpty for all
To disallow empty extend NotEmpty.

The NetEmpty family of classes does skips the global accept empty and get to handle it themselves. NullValue is a NotEmpty class since we do not want to confuse a false positive empty string to be validated as a Null value.
Let getName always return a name, the classname at least.
Exception can look at the propperty for its assessment.
Test to ensure empty string is valid.

Updated all tests to ensure we don't fail an empty input, right across the board now. One rule for all but NotEmpty Class family. Instead of testing validate methods we should test against the __invoke method which is what validator uses. Updated all validate methods and calling __invoke directly in tests.
Fix and optimize Domain rule.

doubleHyphen was failing after repairing the tests.
start property never used
Tried to prevent these problems in future and minimize duplication in the validation, assert and check implementations. This can still be improved on.
Improve CPF legibility and footprint.
Interfaces are inherited from parent
Refactor method extraction.

Reduce triplication of efforts.
Validate reduced to 4 lines.
Check reduced to 4 lines.
Assert also seeing improvement in footprint.
AbstractRelated also treat empty input Valid.
Update documentation explain all values optional
Improved filter for ctype rules.

Parent only keeps a helper and does not overwrite the std empty filter.
Since its only the 3 rules Digit, Alnum and Alpha that uses this it makes far more sene this way around.
Call helper function purely to minimize duplication.