Don't overwrite git dependencies
Closes #33 (closed)
The new behaviour is to bail if any changes have been made to checked out git files in the build directory (both dependencies and compiler) and add a new command swim restore
that restores all checked out repositories.
I have added two tests that test this for libraries. Our test suite only has a path compiler and I don't feel like compiling spade again just to test this. Most of the code is shared anyway.