Refactor away some duplicated check code

Still more work to do here; need to be able to pass in a Proc so that
the #each arg count check will work.