We restructure the function significantly to let us work forwards instead
of backwards through epochs. We also make the assumption that the OSD
will have the maps it is supposed to have. If we for some reason fail to
load a map, we fall back to something minimal, but in general there is
little point to sending a more complete message when local maps are missing
since it shouldn't ever happen anyway and the receiver can always go get
maps from the mon.
Fixes: http://tracker.ceph.com/issues/38040 Signed-off-by: Sage Weil <sage@redhat.com>