librbd: fix error path cleanup for opening an image

If the image doesn't exist and caching is enabled, the ObjectCacher was not
being shutdown, and the ImageCtx was leaked. The IoCtx could later be closed
while the ObjectCacher was still running, resulting in a segfault. Simply use
the usual cleanup path in open_image(), which works fine here.

Fixes: #8912
Backport: dumpling, firefly
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>