Don't raise on out-of-range datetimes passed by a user

Currently out-of-range user-entered datetimes cause an argument error:

```ruby
task = Task.new(start_at: "2014-07-01T24:59:59GMT")   #=> ArgumentError
```

In contrast, when *really* bad data is entered the error is caught and the attribute is set to `nil`, 

```ruby
task = Task.new(start_at: "rubbish")
taks.start_at      #=> nil
```

This PR catches the argument error to make the above two scenarios consistent.