backport: "blob: fix truncation of malformed blobs"

When we failed to iterate over blob data at possition
  ctl->index_offset - hdr_size
may be corrupted - because we may failed long before proceeded
local_max_num entries.
We can't even use loc.dc[loc.pos] because if can be full of nulls, so
just cache last valid index and use it in case of an error.
blob: add defensive programming

Jump to again only once. This prevents infinite loop in case
eblob_mark_entry_removed / eblob_remove_type fails.