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

#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.