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.
Remove debugging statement committed by accident in 38c602d
Mark `haskell-process-do-{type,info}` autoloaded
Fix `C-u M-x haskell-process-do-type` inserting bad signature

For single-character identifiers or non-ascii identifiers,
`haskell-process-do-type` would put brackets around the
identifier, e.g. `(f) :: Int -> Int` instead of `f :: Int -> Int`.
This is fixed now.
Use `(next-error-internal)` instead of `(next-error 0)` error visiting

This is just a minor fix/optimization. `(next-error-internal)` better
matches the behavior of `compile-goto-error` in the presence of other
next-error capable because it avoids calling `next-error-find-buffer`.

This is related to #62