Major clean up and refactor

The design of the server has been greatly simplified. The documentation
has been improved for most functions. Logging has been simplified with
macro definitions. Most logging information has been removed due to
redundancy - only truly important and informative information is recorded
now.
README update