Use process value for determining derivative in controller.

This avoids issues in and around locations where the setpoint changes; you get
_huge_ spikes in derivative when the setpoint changes if you take the derivative
over error instead of process value.