Refactor socket comms using PoetSocket class(es)

Add a PoetSocket class which is a light wrapper over regular sockets and
implements the convention poet uses (32 bit big endian prefix to
messages indicating length). Eliminates all the `socksend(s, ...)'
calls which are now something like `s.send(...)'. Add slightly higher
level subclasses for client and server just to clean up main code.

Addresses #26
Refactor client/server to use OOP

Convert the client and server to use OOP style by putting all the
shell_* functions into PoetServer/Client classes.

Addresses #26
Merge branch 'oop' into develop