At the moment all formatting (colours and other styling) is done by the core.
This doesn't really make sense, as we implement IRC-specific logic. Ideally this should be pushed into the IRC parser, and the parser interfaces should expose some kind of backend-neutral rich text.