Convert many isinstance() checks to unwrappers.

The unwrappers are very preferable because they eliminate error-prone branch
possibilities and automatically resolve promises.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>
Add some initial networking pieces.

This introduces an endpoint API and some sockets. Only TCP on IPv4 is
supported, and only the clients.

This is sufficient to run an IRC bot, which was a big milestone that we're
happy to have reached.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>
Add a test for environments.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>
Check bounds on ConstList.with/2 helper.

Signed-off-by: Corbin Simpson <cds@corbinsimpson.com> <simpsoco@google.com>