Move reusable validation factory semantics to a common super class

This is in preparation for creating a BindingsValidatorFactory. The
common super class removes the need for copying behavior from the
current ValidatorFactory.