Initial server infrastructure.

Implemented a core server in C which takes in connections from clients
and spews out whatever they send in.  It opens a socket, looks at the
number of CPU cores, spawns a thread per CPU, and starts an event loop
per thread.  As soon as a connection comes in, one of the threads
picks it up, adds it to its event loop and starts listening to the new
client.

This is loosely based off of nginx's architecture, using threads
instead of processes.  nginx seemed like a good starting point since
it was proven to tackle huge amounts of concurrency.  I looked at
libevent, libev and libuv for the event loop library and chose libev
eventually since it claims better performance than libevent and seems
more focused than libuv.  I did some naive tests on my computer and
it seemed to handle 10k concurrent connections, so it seems like a
good starting point.