When rendering typos, we look up what visual column the typoe starts on
but I mixed a raw byte offset with the offset into a lossy string. This
caused panics when dealing with non-ascii content.
Fixes#258
I didn't count on how `buffer.lines().count()` would handle different
corner cases, like slices with no `\n`, slices with trailing `\n`, etc.
Fixes#259
Before, we always displayed absolute paths and now we'll display
relative ones.
The main issue was loading the config correctly. We just have to
cannonicalize whenever doing so.
In preparing for smarter handling of config, we need to be able to tell
what is present and what isn't.
BREAKING CHANGE: `--hex` was removed, the value didn't seem high enough.