revert #53 to fix empty string usecase

#53 changed behaviour of `required` so that an empty string wasn't acceptable which was in contra to advice in #32.

Resolve #53 by adding allowEmpty property which checks for empty strings.
Merge pull request #61 from seangarner/fix_empty_string_validation

revert #53 to fix empty string usecase and add allowEmpty to fix #53