Fewer Dereferences to compare directories

Comparing file->master->dir with frame->dir happens inside the
deepest inner loop. By adding file->dir we avoid many derefs

~5% speedup in merge.c
Pack dead bit into commit pointer to avoid derefs

In large repos, a lot of time is spent following revisions[n]->dead
we can pack this flag into the unused lower bit of the revision
pointer to avoid this.