Refactor base::waitable_event (remove support for multiple threads)

Additionally, add wait_and_reset() API and appropriate test.