Better directory structure

Split off related source files into their own directories
for easier browsing of the entire codebase.
Better documentation of main supervisor module
Skeletal implementation of client actor

Each connected client will be represented internally by a
single actor running two processes: the main actor process
(a gen_server, courtesy of ExActor) and a reader process
managing the socket that represents the connection.
Defer handing over control of sockets to client processes

Rather than immediately changing the controlling process
of a socket representing a newly connected client to the
client process, allow the client process to take control
of the socket on its own terms.

This allows the client process to delegate control of the
socket to the reader process that it spawns upon first
spinning up without requiring an extra handoff of socket
control in the intermediary.
Initial draft of Minecraft interoperability

The eventual plan is for interoperability with particular
client protocols to be implemented in such a way that almost
any voxel game's client could be plugged into an Alembic
server, provided that server was running an adapter for the
client's protocol.

The Alembic.Minecraft module namespace contains code that will
serve as the reference implementation for such an adapter,
translating server-side events into Minecraft-protocol packets
and vice versa on behalf of those clients who are using the
Minecraft protocol to connect.