Multiple processes works. Lag fixed.

StoppableThread is now a process instead of a thread, but it has the
same methods, etc and is mostly the same as far as other classes are
concerned (only change is a different 1-statement method of
sending/receiving data, and the new version is cleaner). There is no
longer a problem with threads taking too long; the robot reacts quickly
to walls and image processing now runs at ~8 Hz (not ideal, but
workable).

For some reason not all processes exit cleanly when the match ends, but
they can still be stopped with ctrl-c. I have no idea why, although I
haven't spent much time investigating.

The robot isn't currently programmed to stop its motors at the end of
the match (this needs to be fixed!), but perhaps it would be easy to do
this if the control thread were in charge of stopping itself at the end
of the match (and put itself in a "stopped" state and stopped the motors
first). This will not be a difficult problem to fix.