New polling loop, should be more stable.

All presentation modes should work as expected now.
Next step is to document it for the presenters.
And then on to porting it to websockets. Roflscale.