New submodules: check and net

Added shared multiplexing with a listener and a server connection. The
multiplexer interface supports the usual accept/receive/send I/O functionality,
as well as half-duplex shutdown, full connection closure, and generic
timeout-checking.

The multiplexer implementation leaves potential for much optimization.

Added some utilities for unit testing in the check submodule.