Slice a copy of outstanding callbacks.

Take a slice of the callbacks before invoking the turnstile, instead of
calling all callbacks after invoking the turnstile. That's a race
condition because the callback could have been added after the turnstile
was entered.

Closes #19.