feat: Async image loading
Overview
This MR fixes the UI blocking issues when loading notes with many images. It moves image decoding to a background thread and rewrites the Markdown parser to be significantly faster using zero-copy string views. As a result, image loading is nearly instantaneous, regardless of the number of images on screen.
Comparison
Here is RAM usage with 18 MB of images added to a note (different formats, some are high resolution).
Before (677 MB) vs. After (97 MB)
Closes #64 (closed)
Edited by Valentyn Bondarenko
