Added logging. Created directory structure for persistence file. Changed AbstractCommandProcessor so that printMessage gets clientGUI from plugin. This had to be done because when constructor and loadplugin are called getClientGUI returns null.
Added comment why plugin.getClientGUI instead of injecting ClientGUI to AbstractCommandProcessor