some better logic for folder creation for modules. record whether we were able to pushd, and only popd if so, and remove any build/install folders after a module has run, in case it never needed them for some reason (or something failed).