Logic gets measurements directly from IMeasurable

This has neatened up the decision logic a little bit (as well as the
parameters required to call it), separated weighting from measurement
and bias from condition (can be handled much more neatly through
IMeasurable and IBiased)