Support device capacity changes

The capacity of the underlying storage device can change while the blkio instance is in the started state.

The first level of support consists of querying the capacity each time the "capacity" property is read. That way applications see the new capacity if they know to look.

The second level of support consists of monitoring the device for capacity change events and optionally notifying the application when an event occurs.

QEMU only needs the first level of support so that block device capacities can be updated when prompted by the user. This will allow the QEMU BlockDriver to implement .bdrv_co_truncate().

Other applications may want a callback, but let's defer that until it's actually needed.