improve robustness of the worker

One major conceptual change is that make bundles are no longer symlinks but rather copy their dependencies.  This makes the logic surrounding maintaining the dependencies much cleaner.

Also, we maintain the invariant that we are preserving all symlinks during running the bundles.  The only place where we don't use symlinks is uploading and downloading bundles.