create a validator factory

it's kind of crappy, but the logic should definitely live over here.
implement validation-related code for Katuv::DSL::Context