Connect network

Here's a big push to get the missing networking infrastructure complete.

PLEASE NOTE:  The tests in this are NOT sufficient.  I wrote the bare minimum to make sure the code isn't flagrantly wrong.  We have to write tests for the error cases too.