HTML-only emails (e.g. from Synology DSM 7.3 Task Scheduler) use <br>
tags for line breaks. The existing implementation passed the raw HTML
body to bluemonday with AddSpaceWhenStrippingTag(true), which replaced
every tag including <br> with a space, causing all content to appear
on a single unreadable line.
Fix: convert <br> tags to newlines before stripping HTML, so line break
semantics are preserved in the notification body.
Resolves the gap noted in #690 ("very sub-par" HTML support).
Move message cache from server/message_cache.go into a dedicated
message/ package with Store interface, SQLite and PostgreSQL
implementations. Extract shared types into model/ package.
Some e-mails are sent using quoted-printable encoding [0], resulting in
notifications with weird characters.
This commit adds support for this encoding, resulting in the following:
**Before**
```
A
=3D=3D=3D=3D=3D
B
=3D=3D=3D=3D=3D
C
```
**After**
```
A
=====
B
=====
C
```
[0] https://www.rfc-editor.org/rfc/rfc2045.html