librbd: Implement object map for tracking in-use objects

The object map is stored in a new 'rbd_object_map.<id>'
object in the image's pool. The object map tracks blocks
that are in-use, non-existent, and are pending deletion.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>
librbd: Use object map for IO operations

When the RBD exclusive lock is enabled, IO operations
now check whether or not an object exists before
sending a IO operation to RADOS.

Signed-off-by: Jason Dillaman <dillaman@redhat.com>