Begin abstracting out build script
Split build into preparation and compile steps

This is needed because the Node server will be modifying the resources
in between steps.