checkpoint: Initial working distribution driver

Needs some refactoring, cleanup, and testing.  Most pressing issue:
listeners need to keep track of their accepted sockets so they can be
closed before the listener itself.