In case of an invalid date, return a string
moved invalid date rescue logic into Transform::ToDate

Why? Basically it feels like Parse::Date shouldn't report a success when in
fact parsing did not really succeed.

Arguably you could say the same for 'transform', but there are two reasons I
like the rescue clause here:

1. It will properly terminate the iteration in transform.rb rather than
   needlessly continue cycling through transformers ("needlessly" because we've
   already confirmed a match, but parsing failed).
2. It's nice to have these tests in to_date_spec.rb, whereas otherwise we'd
   have to test date-specific error handling in a higher-level spec.

Also, I like this because it covers the Date case (w/o time) as well.