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