Linux support for the server and 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 maintenance of the code. The changes do not greatly affect the plugin's functionality.