Refactor SModelFSWriter to reduce its responsibilities

Right now the writer has to take care of writing, compiling and packaging an SModel which is a gross violation of the Single responsibility principle. It should therefore be refactored into different services which take care of one specific sub-process each.