Remove preprocessor instructions from codebase

At the moment the build is controlled by preprocessor instructions, resulting in multiple builds of the same library (client, architect, server). It would cleanup the code if removed them in favour of runtime configuration.