Cleanup callbacks

Summary: Avoid code duplication so that it's easier to add new callbacks.

Reviewed By: @billf

Differential Revision: D1397179
Introduce {ExternalThreadEvent,Sleep}WaitHandle on{Create,Success,Fail} hooks

Summary: Introduce ability to hook to create/success/fail events of {ExternalThreadEvent,Sleep}WaitHandles. This is useful for profiling I/O events.

Reviewed By: @billf

Differential Revision: D1397203