Implement {Tcp,Unix}Acceptor::{clone, close_accept}

If a task is spinning in an accept loop, there is currently no method of gracefully shutting it down. This PR introduces a way to do so by cloning the acceptor and implementing a close_accept method to unblocking any pending acceptor.

As with other I/O methods like this, it is `#[experimental]` from the start and sadly carries with it a good deal of code to support it. Much of the complication is from the fact that you can now concurrently accept on the same socket.

I tried to add a good deal of tests for this change, but another set of eyes is always appreciated!
> To that end, I think it's safe to make this atomics::Relaxed, along with the corresponding store.

Optimizing past the two syscalls below, my policy of "large doc block for anything less than SeqCst", and my general paranoia of anything less than SeqCst all cause me to leave this as SeqCst.

I wanted, however, to optimize for the fast path of accepting (in terms of syscalls) when a connection is available. In that case you'll hit `accept` immediately and then continue to fly through. On the slow path, when a connection isn't available, you'll fall back to `select` to do the blocking. That "optimization" is just pulled out of my head though, I don't know whether it actually matters.

At this point, though, it's nice having only one invocation of `select` as opposed to duplicating, and I don't think that the flag is really wasting anything, so I'm going to leave as-is if that's ok.