Decoupling the UI logic from the media/core functionality

This code isn't complete, in fact it doesn't even compile yet, but it is the beginning of decoupling the UI logic from the base functionality.  In this implementation the Server class will contain a SongManager, ClientManager and various UI classes.  All of this functionality already exists in the Host class in the root directory.  This commit is merely the beginning of decoupling all of that functionality.
At present this class is bare bones and set up exclusively to manage playback.  Eventually it will also manage the various client connections and will contain a reference to the UI components it requires.