Backlog:

* Write tests for 100% coverage
* Add tests for anything where scrub marks blocks as invalid (source changed,
  bitrod in backup, ...
* Check if we really should do image.close() ioctx.close() cluster.shutdown() as
  recommended in http://docs.ceph.com/docs/jewel/rbd/librbdpy/

Next:

* Change lock lib to be a wrapper, possibly with a context manager
* Add shell scripting to exports so that a shell script can restore any backup

Idea:

* Provide a block device for mirror writes which *only* tracks changed
  blocks for diff backups

