Major refactor to make it easier to extend, and now runs with Gulp

#59 
These might be better as coalesces?, eg `destFolder = config.buildFolder || files.getBuildFolderPath();`