bidmerge: choose shortest list of diverge and rename/delete warnings
Slightly less arbitrary than choosing the first set.
monoblue: port code selection without line numbers from gitweb
This is adapted from
2239626369f5.
It also fixes
issue4790 in monoblue; tab characters now have meaningful width on
the modified pages (file view, file diff, changeset).
ui: avoid mutable default arguments
I almost introduced a bug around this code by accidentally mutating a default
argument. There's no reason for these to exist.
It is OK to not assign {} to environ in ui.system because util.system knows how
to deal with that.