lib: Add direct support for the NBD (Network Block Device) protocol.

You can now add remote NBD drives using:

 ><fs> add-drive "" format:raw protocol:nbd server:localhost

(Note that you also need to add port:NNNN if the server is running on
a non-standard port).

The corresponding qemu-nbd service can be started by doing:

 qemu-nbd disk.img -t

This commit also adds a test.
drives: add_drive was only called from one place, so inline it.

This is just code motion.
appliance: Use ignore_value() macro instead of casting return to (void).
appliance: Make sure cachedir has mode 0755 (RHBZ#921292).

See https://bugzilla.redhat.com/show_bug.cgi?id=921292#c4
Version 1.21.21.