Monitor: allow specifying "begin" and "target" values on map subscriptions
Right now, the monitor subscription mechanism lets you specify the map you want to start receiving updates as of. Unfortunately, this maps horribly onto the needs of the OSD's map subscription.
When the OSD discovers it is missing a map M needed for a particular message, it needs to go from its present map (C) up to the missing map. Right now, it sends an osdmap subscription to the monitor containing M. But if M > C+1, then when the OSD gets map M, it has to send another request for C+1, and only when it gets that message can it process the message (plus, it puts more load on the monitors).
This is all compounded by the fact that with the current interface, the OSD can't have much memory about what it's asked the monitors for (because when receiving a newer map it doesn't have, it has no idea if the previous request for M-1 is going to include M in the response or not). So if it's not getting maps from its peers, it needs to keep spewing the monitor with requests for maps that are likely to be overlapping. :(