Added PollOnce to Poller

In answer to somdoron's suggestion in #131 to add a PollOnce method to Poller. 

Trying to run the loop only once exposed a subtle bug (which has no impact in the old Start usage) in the triggering of the timers. The bug fix code (commit 083b8c8) looks odd enough if you don't know the bug it is fixing, so I left a somewhat lengthy comment explaining it.