Generalize error parsing into one function using haskell-compilation-error-regexp-alist

This helps haskell-process to support the ferror-spans syntax, and
also the error jumping in haskell-interactive. My implementation of
-parse-error is lame, but it's general, anyway.

Ping @hvr