Parse dates using ruby's own date parsing - not regular expressions

I've been having problems parsing date-times using json-schema. According to iso8601 'YYYY-MM-DD' is a valid date-time. Ruby respects that, but json-schema does not, because it uses a more simplistic regular expression to match date-times.

I've refactored the parsing of date and time formats to match what's done for URI, where we use the built-in ruby method, and add a validation error if there are any parsing errors.

This has brought up some subtle differences in how json-schema parses dates compared to ruby, for example, case sensitivity. I'd assume that ruby is correct in this, and I've updated the test cases to reflect that.