Make snapshots remember what git commit they are
utils/snapshot now includes a file gitcommit in the archive, which
makeversion reads if it fails to detect a git repository. It also
removes .gitignore and utils/, which are useless in a snapshot.
makeversion now only finds a git repository when .git exists in
the source directory, but won't find repositories at higher levels
anymore. This is so that snapshots can be extracted and tested in
a subdirectory of the source, without having makeversion find the
git repository, but using the snapshot's gitcommit file instead.