Allow user-overriding of default email domain

Lazy projects where svn user X has email X@project.org don't need to
compile (and update) an identity-map for rolling conversions.

This can be mixed with a real identity-map, so only misses in the map
will have the user then show up as X@project.org

Also change the defaults somewhat. I don't like the NFS reserved
username nobody to show up in SVN or git logs, but am keeping that for
now.
Fix timestamps of notes to adhere to git standards by using +0000
instead of -0000.
Match rules for files below a recursion
Remove the branch copy heuristic

The FreeBSD project has a different approach to branches than the
standard SVN or GIT models of how branches should work. An MFC from
head/ to stable/8 is a cherry-pick in git and should never result in a
merge commit.

Sadly, this means that "IFCs" from head/ to project/foo also no longer
are merge commits, though they really are ...

Reported by: Ryan Stone <rysto32@gmail.com>
Set marks on notes, so fast-load picks up from previous state.

This should fix the notes upon successive, incremental conversions.
Merge commit 'refs/merge-requests/20' of gitorious.org:svn2git/svn2git into mr/20
Merge commit 'refs/merge-requests/17' of gitorious.org:svn2git/svn2git into mr/17
Revert "Remove the branch copy heuristic"

This reverts commit c0187417902b10698135727d911ab9018f4941eb.
Make conversion runs deterministic by sorting what's returned via hash from the SVN API.

An SVN commit spanning multiple paths that shall be turned into
multiple branches in git would result in the git commits to be fed into
git fast-import in arbitrary order. This is problematic for merge
commits, as it means the list of parent commits for the merge commit
will have an arbitrary order. Fix this by always handling the paths in
an SVN commit in order. This makes svn2git conversion runs reproducible.

Unfortunately, commits where paths have been removed and added again,
might no longer be handled correctly. I haven't found such a case in the
FreeBSD repository however.

This is IHMO a bug in git, but it all hinges on semantics like list of
parents vs. set of parents and how you define a hash on a set of objects
that have no natural order.
Remove unused includes.

Forgotten by yours truly in commit 1234336.
Use fastimport.write for the actual commit objects too, so we get
logging when --debug-rules is turned on.
Fix compilation, the last rebase/merge went wrong.

Noticed by:	Andy Pilate