REF: check can_hold_element instead of try/except
`_can_hold_element` is not well-documented, and in local testing it does _not_ match my intution of "we could do `self.values[:] = element` without raising".  But adding two assertions in `fillna` _does_ work in all the tests:

```
         # fillna, but if we cannot coerce, then try again as an ObjectBlock
        try:
            # equivalent: self._try_coerce_args(value) would not raise
            # Note: we only call try_coerce_args to let it raise
            self._try_coerce_args(value)
            assert self._can_hold_element(value)
        except (TypeError, ValueError): 
            assert not self._can_hold_element(value)
```

(at least after patching the `DatetimeBlock` and `TimedeltaBlock` implementations)