Box watcher changes
1. _watch() has write lock around Box.addWatcher()
2.  Box.watchers is no longer an AtomicRef
Fix await/awaits lost updates
Tweaks and comments.

Deeper problem with MultiWaiter remains, around knowing whether
we've seen all the new values in the current commit. Currently
we simply retest the tuple as each value comes in, which amounts
to structure tearing. Solution TBD.
Add support for stashed updated-box access.

First step towards making multi-wait/watch functionality
atomic: package-internal watcher/waiter handlers e.g. MultiWaiter
can examine the current updated box set to decide whether it's
time to notify, run a lambda, etc.