Add `dispatch` and `priority` kwargs to `on_trait_change` decorator.

This PR gets rid of the `*names` argument to the decorator, which never worked, and replaces the magic prefix on the pattern with a dictionary of explicit data and values.

The default values of the kwargs match those of the normal method.
Well it *does* work, in the sense that priority change handlers run before non-priority handlers. I've added a simple test to check that.

What if it's just left out of the docstring such that it doesn't get any extra attention? Having the two functions behave *almost* the same but not quite for no particular reason really irks me.