Introduce subst() from gofmt which rewrites the line numbers and fixes most of the oddities
Reimplement double gofmt to fix a few more oddities
Fix tests for new style output

Fix expected vs actual confusion in tests - diff should be
diff(expected, actual) so added stuff is +.