Fix for issue 2174

The function that formats and prints the squigly line that hilights
errors counted tabs as spaces, which resulted in incorrect error
messages when tabs were used for indentation. This change compares
the highlight line with the previous line and inserts a tab instead
of a space whenever such a tab exists on the previous line. Note
that error messages will still highlight incorrectly when the
previous line include characters that require more than one utf8
code point, as mentioned in issue 3260.
Added related FIXME for 3260
auto merge of #4853 : Thiez/rust/incoming, r=catamorphism

A simple fix for issue 2174.