Refactoring

Removing validates()
Renaming use_default_if_missing to use_default
Making use_default true by default
Adding more unit tests
Adding support for allow_empty option
Fix notice in time validator
Update README