Use std::string instead of const char*

This patch unifies the choice of std::string vs const char* to be more
c++ friendly and cleans up some of the arithmetic associated with
character arrays.
Add Database class and server executable

This patch adds the Database class which controls the subsystems of
the entire system as well as expands on the initial iteration of the
server executable. Basic signal handling and argument parsing via
boost's asio and program options libraries have been implemented as
well.