add Component::Validation and rewrite Tax to use it

Moose dependency gone.
Component::Validation is incredibly simple and exists purely so that validation can occur at the position in the component stack that you choose.