Recent changes cause tags to sort slihhtly differently.

This requires rtest rebuild.  The t9602 tesr was affected.
Support tag subsets if SUBSETTAG defined

In CVS you can tag a subset of files, as well as a whole repo.

Once we've found the join point between a tag and the git repo,
check whether the file states are the same.

If so, then do as now, create a git tag pointing to the commit.

If not, create a branch instead of a tag, parented at the join
point with the exact file contents of the tag.

For large repos, you wil need to increase the size of
branchcount_t.
Version bump for release 1.28.
omment around dead commits and tags
Streaming file at a time interface to revdir

This give us the opportunity to fuse two inner loops.
One collects revisions into a file list, the second turns the file
list into a revdir.

-DSTREAMDIR requires -DFILESORT
Dirpack fix

Stream based dirpack didn't compress the same way the array based
one did.

Couple of simplifcations.
Remove master_dir.prehash and master_dir.len

Prehash isn't used since the hash based is_ancestor changed to
follow directory links. Len is only used once after it is
calculated.
Fix Subset Tag

Don't free the revdir temporary storage until after tagging
as subset tag uses it.