Added proper docstring to just about everything
Changed validators to accept a NamedTuple to give them more information
Changed return semantics of validators to a tuple or list of tuples, making them target agnostic
Cleaned up the validator calls and started working on piecewise validation