Add ThreadedPollEvent

This funnels all condition evaluation through a single threaded executor
(by default), which allows clients to construct a multievent of
conditions that evaluate against non-thread-safe code.
Update javadoc