Adding 'when' parameter to MonitorField

MonitorField now accepts a 'when' parameter. It will update only when the field changes to one of the values specified.