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.
**priority** is not described in any docstring. Furthermore from the code it looks that it just adds the listener at the beginning of the list instead of appending. According the later parts of the code the feature is used for the depends on listeners of properties. I am not sure if we want to expose it more.