Implement Properties
Implement a properties sidebar. In order to prevent
the UI from freezing, we use futures to load and cancel
loading file information. We also make use of
gdk_pixbuf
and svg_metadata
in order to get the file's
metadata before the file fully loads, meaning there's
little to no delay between changing files and seeing
the metadata for large images.
The properties widget uses expressions and properties to avoid glue code for setting each label, allowing us to have a clean separation between UI and data.
For now this is just the sidebar - the bottom drawer comes after.