Fix frequent double-counting of characters for source location tracking, and implement error pretty-printing