Interface all controllers must inherit from.
The tolerance for being "at the target"
The target for the reference to converge to.
Whether the controller is within a tolerable distance of the target
Given a reference, calculates how to best match the target.
Resets the control loop