Replace Model::findMessageForItem with a custom role

Using the QAbstractModel interface simplifies replacing
the actual model used.
Refactor deproxifiedIndex to be independent of TreeItems

TreeItem is an implementation detail of the Imap::Mailbox::Model.
Usage of that detail outside the model should be avoided.

REVIEW: 119676
the dirty check needs to happen on closing

... to eventually trigger the save

REVIEW: 119667
maintain minimum label width on editing

BUG: 338129
REVIEW: 119674
GUI: cleanup: Remove the MessageView argument to the LoadablePartWidget

This is not needed since 1b4a23fe5f9df90779a04670c4c07135aefbc390 which moved
actual widget creation and wrapping to the PartWidgetFactory.

REVIEW: 119771
Refactor ComposeWidget to enable reuse of envelope fields

Gui[refactor]: create EnvelopeFormWidget that contains the sender and recipients
fields and all their functionality. This will enable future re-use of the
widget in dialogs for use-cases like Message Redirection.