Fix intersection being one way

Fast fix for
```
>>> Interval([-7, 7]) & Interval([-4, 1])
IntInterval('[-4, 1]')
>>> Interval([-4, 1]) & Interval([-7, 7])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "intervals/__init__.py", line 501, in __and__
    return intersection
UnboundLocalError: local variable 'intersection' referenced before assignment
```