better error message in test code

This makes debugging the test code easier. For example,
while writing a file tree for use by a test case, the
git comand might exit with a nonzero status. It's
helpful then to see what command we were trying to run.
fix migrating from -copy=false to true

Flag -copy is used to determine where to write out the
newly-generated manifest, but it was also incorrectly
being used to locate any existing manifest file. This
meant that when switching to or from -copy, reading the
existing manifest was broken. We fix this by attempting
to read an existing manifest in both locations,
regardless of the given flags.

We also explicitly check that the correct version of
each dependency package is installed in GOPATH, when
switching to -copy=true.