localrepo: refactor prepush logic
Simplifies the prepush check logic and makes it a lot more direct and
comprehensible. Instead of comparing the total local vs. remote head count, it
compares the number of new vs. removed heads.
abort: uncommitted local changes
dirty
M foo
% validate update of standalone execute bit change
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
nothing changed
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
0 files updated, 0 files merged, 0 files removed, 0 files unresolved