Because this is designed to work interactively with functions that are being redefined, the user need to be able to remove the handler without having a handle on it any longer. That can't be done if we make `remove=True` and want to keep `handler` as a positional arg.

`on_change(name, handler, remove=True)`

This requires handler be passed so the user would have to do the silly `on_change(name, None, remove=True` if they have redefined the handler.