Added Slot.filtered().

The generic type jockeying you see is so that you can do something like:

Signal<Integer> sig = ...;
UnitSlot myThing = ...;
sig.connect(myThing.filtered(new Function<Integer,Boolean>() {
  public Boolean apply (Integer value) { return value % 2 == 0; }
});

If we didn't let you refine the type, then you'd have to use Slot<Integer> for
myThing even though it doesn't care about the value.

I also considered adding Signal.filter() to create a filtered signal, and maybe
I should, but by putting it on Slot, you can filter both Signal and Value,
which is nice.