librados: Added new API methods to create an ioctx by pool id

A new pool_list method includes the unique pool id for all pools.
This pool id can be used with the new rados_ioctx_create2 /
ioctx_create methods to create an ioctx by pool id instead of
by pool name.  Creating ioctx's by pool id helps avoid certain
race conditions when pools are renamed or deleted.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: gracefully handle deleted/renamed pools

snap_unprotect and list_children both attempt to scan all
pools.  If a pool is deleted or renamed during the scan,
the methods would previously return -ENOENT.  Both methods
have been modified to more gracefully handle this condition.

Fixes: #10270
Backport: giant, firefly
Signed-off-by: Jason Dillaman <dillaman@redhat.com>