mon/OSDMonitor: prevent set primary-affinity unless all OSDs support it

Make sure all running OSDs support the feature before we start using it
(even if the config option is on!).

Fixes: #7642
Signed-off-by: Sage Weil <sage@inktank.com>
mon/OSDMonitor: make osdmap feature checks non-racy

The check for OSD features may race with the boot of an OSD that does not
have the necessary features.  Check the pending info too, and if there is
a missing feature, return -EAGAIN.  In the callers, wait on -EAGAIN.

Signed-off-by: Sage Weil <sage@inktank.com>
mon/OSDMonitor: feature feature check bit arithmetic

Make sure all features are present (instead of just any of them).

Signed-off-by: Sage Weil <sage@inktank.com>
Merge pull request #1403 from ceph/wip-7642

mon: fix check for primary-affinity feature bit, and fix a race in similar checks

Reviewed-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Joao Eduardo Luis <joao.luis@inktank.com>