Integrate preprocessor
Connects the current preprocessor to the frontend - i.e. the software now actually makes use of the preprocessor. Also some minor changes to the preprocessor itself. Note: some duplicate files are removed, which isn't a subtask of this branch necessarily, but should happen anyway.