Add icon support

- icons are displayed at the top left corner
- disabed by default, fully backwards-compatible
- no additional dependencies, only cairo used
- TODO: only supports png (but all default images are png)
- TODO: message formatting is sometimes buggy