Handle union types in add, not dispatch

Union types via tuple have always worked in dispatch

@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

inc = Dispatcher('inc')

@inc.register((int, float))
def _(x):
    return x + 1

This used to raise an exception.  Now it works as above.
Merge pull request #18 from mrocklin/union-add

Handle union types in add, not dispatch