Provide minimal framework for range error messages.

This commit provides a generic function for generating range validation error
messages, and provides type-specific subclasses for length, range, and
repetition. These error messages are important, as they'll ultimately be shown
to the user if a form fails validation.

I tried a couple times to get a single function (with passed-in vocabulary) to
work for all three types, but the English-language descriptions were different
enough that it made sense to go the in-common + type-specific subclass route.