Refactor handling of UnifiedMailboxes and subscription
This moves UnifiedMailbox to its own file and changes the code everywhere to keep pointers to UMs instead of references and copies.