Past two days have been spent making [[todo/import_tree]] interoperate
safely with `git annex export`. This was more complicated and needed more
methods to be added to the remote API than I had expected.

At this point, the directory special remote's implementation is no longer
an unsafe prototype, but detects conflicting file modifications and
avoids overwriting them when exporting to the directory.

Here it is in action:

	joey@darkstar:/tmp/testrepo> git annex unlock foo
	joey@darkstar:/tmp/testrepo> echo version from git > foo
	joey@darkstar:/tmp/testrepo> echo version from special remote > ../dir/foo
	joey@darkstar:/tmp/testrepo> git annex add foo
	joey@darkstar:/tmp/testrepo> git commit -m add
	joey@darkstar:/tmp/testrepo> git annex export master --to dir
	unexport dir foo failed
	export dir foo failed
	(recording state in git...)
	git-annex: export: 2 failed
	joey@darkstar:/tmp/testrepo> git annex import master --from dir
	import dir ok
	update refs/remotes/dir/master ok
	(recording state in git...)
	joey@darkstar:/tmp/testrepo> git merge dir/master
	Auto-merging foo
	CONFLICT (content): Merge conflict in foo
	Automatic merge failed; fix conflicts and then commit the result.
	joey@darkstar:/tmp/testrepo> echo merged version > foo
	joey@darkstar:/tmp/testrepo> git annex add foo
	joey@darkstar:/tmp/testrepo> git commit -m resolved
	joey@darkstar:/tmp/testrepo> git annex export master --to dir
	unexport dir foo ok
	export dir foo ok
	(recording state in git...)

The feature is close to being mergeable to master now, but still needs some
work on the progress display of `git annex import`, and on supporting
imports from the same special remote to different git repos.
