Improve error highlighting

Now the error highlighting code extracts the name of the file being
compiled when the error occurred to avoid the problem of highlighting a
line in a wrong file. It also checks for `NO_SOURCE_PATH` filename and
then highlights the error relative to the top level form for which the
evaluation was triggered (in other words we get nice error highlighting
when we do `C-c C-c`). The behavior for `C-x C-e` needs to be tweaked a
bit when evaluating nested forms (since we too little context then), but
I doubt this will bother anyone at this point.

This fixes #283.