osd/OSDMap.cc: remove pg_upmap/pg_upmap_items too if osd is gone
If an osd is gone or moved out from the specific crush rule,
we should cancel any pg_upmap/pg_upmap_items still bound to
that osd too.
The original code does not work for the above case because
get_parent_of_type() will fail if that osd does not belong
to the crush_rule passed in and hence hits the assert below:
```
src/osd/OSDMap.cc: 4078: FAILED assert(target > 0)
```
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
(cherry picked from commit
8a11ed479d7ea95f76170e74123ca2c48e3a3963)