Handle union types in add, not dispatch

Union types via tuple have always worked in dispatch

```Python
@dispatch((int, float))
def inc(x):
    return x + 1

>>> inc(1)
2
>>> inc(1.0)
2.0
```

However until now they didn't work with register or add

```Python
inc = Dispatcher('inc')

@inc.register((int, float))
def _(x):
    return x + 1
```

This used to raise an exception.  Now it works as above.