ENH: experimental monitor dispatcher
MNT: refactor the dispatcher; now patches user callbacks instead
MNT: monitordispatcher's now a class
MNT: test monitor dispatcher in signal example