Linux support for the server and code refactoring

The changes include the following:
* Linux support added to the server
* Refactoring of the server source
* Refactoring of the "Shared" folder

The aim of refactoring was to generally increase the clarity, readability and ease the maintenance of the code. The changes do not greatly affect the plugin's functionality. Some files were partially rewritten to improve the Linux compatiblity.