Created a proper abstract class for Platforms, and inheirit from it for the currently used platforms.
Changing how file generation is done - using absolute paths as opposed to changing to the code generation directory
Changing indentation issues to make IPython notebook happy