New threading model.

Move all the space simulation game logic to a
new class, LiveSystem.

During every loop, make a copy of the LiveSystem
object for game logic updates, and give the old
object to the paint thread to draw.

Replace many haphazard synchronized blocks (thread
object locks) with just a few locks around
painting, key input, and copying the LiveSystem
object.

Replace the indexes into lists and for loops with
iterator and foreach loops. (No more indexing into
linked lists! Much more efficient!)