Jasmine tests of validation utility

This includes a modification of the validation utility which has it perform min and max length checks on optional fields. Originally, an optional field could exceed its maximum character limit, and fall below its minimum character limit - only email validation was performed.

@AlasdairSwan and/or @wedaly, how's it look?
We use Underscore.string's `sprintf` function to interpolate field names and character counts into the translated error messages.