Spent several days fixing test suite failures on Windows. This started out
really annoying; I had to chase back a "NUL" -- the string not the
pointer! -- to a indirect dependency that needed an update to work with
recent ghc on Windows.

Then yesterday I fixed most of the other test suite failures on Windows.
But, it became clear that the test suite was only testing adjusted unlocked
branches on Windows, and was finding non-Windows-specific problems
involving them. So, today I added a fifth pass to the test suite, so it
will always test adjusted unlocked branches. And fixed all the problems
with them that test suite turned up.

It turned out there was no good way to use `git-annex import`
with an adjusted branch. Merging the imported branch into an adjusted
branch is likely to result in spurious merge conflicts, and the merged
files don't get adjusted. The solution was adding a new way to merge
a single branch in the same way that git-annex sync handles merges: 
`git-annex merge remote/master`

Sadly, I think there are still a couple of test failures on Windows.
(Can't win em all..)
