DefaultOpService: reject multiple matching ops

If two or more ops of the _same priority_ match a provided list of
arguments, we have a Heisenbug on our hands: which op is chosen will be
arbitrary and unpredictable, based on classpath order, which may differ
across environments.

Let's avoid this situation by failing fast: when multiple matches are
found, throw a nasty exception. This will encourage ops developers to
set their op priorities to unique values as needed.