Clean up mixed tabs/spaces when unindenting.
If the whitespace to be removed when unindenting a block is not
consistent, then replace all the indentation in that block with spaces
(i.e. expand tabs). This fixes some odd results that could happen, e.g.
....Line 1
--->Line 2
(dots = spaces, arrow = tab) would become:
...Line 1
Line 2
Because the first character was removed from each line. This now works
okay.
But I don't expand tabs when the whitespace that isn't removed is
inconsistent, which can have odd results, for example:
..Line 1
..->Line 2
......Line 3
Will just remove the first two spaces, resulting in:
Line 1
--->Line 2
....Line 3
This should be rare, as tabs after spaces are a bit odd. But maybe I
should convert to spaces more often. Perhaps when indentation is
inconsistent, or perhaps whenever a mixture of tabs and spaces are used,
or even always just do it.