For now, the only nontrivial `_eval_imageset` method is one for `Interval`.  It was adopted to follow this convention.

> Maybe we should raise and catch NotImplementedErrors.

I'm open to change anything...  But the pattern
```python
r = obj._eval_helper(*args)
if r is not None:
    return r
```
seems to be common for sympy.