feat(core): add min/maxLength validators

fixes #25