Revamped validators (inner layer)

Self-sufficient validators that can be directly called and easily combined.

* [ ] Working prototype
* [ ] Comprehensive unit tests
* [ ] Canonization function
* [ ] Old tests pass when old `canonize()` is swapped with the new one
* [ ] Old stuff deprecated/removed