Refactor PID control to use explicit PID objects.

- The gains are set to the values used in the original Lua
  simulation, so the behavior should be the same.