Improvements to the screenshot viewer, issue #460.

Hold for 0.1.5

The way I state-track players feels nothing short of dodgy, but I can't think of any other way to do this. Also if we have a variable cleanup method that gets called on disconnect or connect (maybe we should implement one), I should probably move "screenshotsWaiting.Clear();" into that, instead of putting it in the Connect() method.

I may have ~~stolen~~ borrowed some of ryannathans code for the split/var cleanup idea...