Cleanup
Give IPCManager a proper home
Delete test object before moving on to next test
Basic test harness for IPCManager
IPCManager handles only one port, but now we can create multiple instances for as many different ports as we like.
Separated controller/client IPC functionality
Test harness works with multiple controller/client pairs
Make IPCClient::read() static

There is no way (I think) for us to know which ready handle belongs to
which client. write() is still non-static, because there can be
multiple threads writing to the controller.
Test multiple clients per controller
Checkpoint -- IPC works with single client per controller
Overhaul of connection handling

- Much better understanding of how connections work
- Test is much smarter now and can detect when the wrong number of
bytes is written, even if it's zero.
NoClients test for IPC seems unnecessary
Some cleanup before rename
Rename
Using exceptions to handle constructor failures