README nits.
Internal: Minor readability.
Correct bug on non-Linux hosts.

select() returns the NUMBER of file descriptors ready.
But tcpfds::wait() should return the MAXIMUM ready file
descriptor.

This made Masstree ignore TCP clients on Macs.
Add cmpxchg for circular_ints.
Log replay fix: Actually record wake commands on all threads.

When a quiescent thread wakes up (i.e., a new command arrives on
a long-dormant log), it is important for ALL threads to record this
wake event. This is because a quiescent log is treated as if its end
time is infinite. Say, by some mistake, a quiescent log wakes up at
epoch E#, but the new log item isn't actually persisted. When we
replay the logs, we MUST stop before epoch E#, lest we miss this
commit! So we record a "wake" command at epoch E# in all threads.

Except that the previous code, as Amy Tai noted, didn't actually do
this. It recorded a wake command only in the previously quiescent
thread.

So record wake commands everywhere. And be more careful about wake
epochs. Use compare-and-swaps to manipulate global_wake_epoch for
correctness.  And make sure wake epochs are stored in the log in
increasing order.