`Tuple(Int, Int)` means that the traitlet must be a tuple of two integers. `Tuple(Instance(DOMWidget))` means that it must be a length-one tuple with a DOMWindget instance as the one and only element. There is not a way to specify that it is a tuple with 0-many elements of a single type. The alternative would be to not validate the type, and just use `Tuple()` (now that I think of it, this is probably preferable, and I have made this change in jdfreder#16).

We are abusing tuples here, because the point of them is to have a static, known shape with known contents. If the shape is variable, a list should be used. We are using tuples for something that should be a list, just so that we can force reassignment if elements should be added to it, which in turn is only because assignment is required to trigger notification events.