Added special types for variants, records, constructors or labels type mismatch.
Printing additional info about types mismatch during compilation error.
When a location is related to multiple lines of code, it is printed
incorrectly. More specifically, the end character is actually an
offset between the beginning and the end of the location.
This commit changes the format of the locations when they cover
multiple lines. It adds the end line and the end character is now a
proper column rather than an offset. It doesn't affect locations
related to a single line.
The old format was:
```
Line STARTLINE, characters STARTCHAR-OFFSET
```
The new format is:
```
Lines STARTLINE-ENDLINE, characters STARTCHAR-ENDCHAR
```