mds: support rolling upgrades
The MDS currently does not support rolling upgrades. Normally we recommend upgrading all MDS at the same time for this reason. We also have an unfortunately complex upgrade procedure  to deal with the CompatSet changing in the FSMap. Old MDSs will kill themselves if they see a CompatSet they are incompatible with. Another issue is that any bump or difference to the CEPH_MDS_PROTOCOL will cause MDSs to not be able to talk to each other.
Now that MDS messages are now versioned (#12107), this puts us closer to supporting rolling upgrades. The next steps are to:
- Guarantee (via code) that there are no unversioned inter-MDS messages: #41565
- Use some kind of feature bit-vector (maybe feature_bitset_t) to gate the use of new features by a newer MDS until all MDS have the same bit-vector. This is similar to what we do with OSDs and require_osd_release. This should prevent the version upgrade of on-disk metadata and newer versions of inter-MDS messages.
- Testing for rolling upgrades in the fs suite.