Revamp parsing of cabal output somewhat.

Prevents logging everything after the first warning as a single warning. Additionally gets filtering out duplicate warnings for free from somewhere in IntelliJ libraries.