Programmer now uses a separate thread for logic.

This stops the UI from freezing up.
For some reason the programmer doesn't receive the bootlaoder's
ready char; but the terminal does. Investigating now.