SchemaDate min and max validators

Default error messages added, SchemaDate min and max validators added,
validation tests added.
Not necessarily safe to assume `Date.now` in the error message, since it looks like you support arbitrary functions. Perhaps L187 should be `? Date.now() : self.cast(value)`?