Improve pattern extraction in `haskell-process-live-build`

The current regexp for capturing compiling lines doesn't work well
with the new meta-info provided at the end of the line after the `)`,
e.g. in the output below, only the second line would be matched by the
regexp.

    [1 of 2] Compiling X.Bar            ( X/Bar.hs, interpreted ) [flags changed]
    [2 of 2] Compiling Foo              ( /home/hvr/Haskell/dummy/Foo.hs, interpreted )

Moreover, the extracted file-name is normalized via
`haskell-session-strip-dir` to match the normalization performed by
`haskell-process-error-warnings`.
Avoid matching empty lines by `haskell-interactive-mode-error-regexp`
Add support for deleting compile messages superseded by recompile/reloads

This works by deleting all error messages matching file-names which are mentioned `Compiling
...` messages newly emitted by GHC.

This new feature is enabled by default but is customizable via the
new `haskell-interactive-mode-delete-superseded-errors` customization
variable.