Add Signal::distinctUntilChanged
Write Behavior::becomes in terms of Signal::distinctUntilChanged
Move Behavior::becomes to Signal

When the signal's value becomes the target value, it emits true. If the
signal's value changes *away* from the target value, it emits false.