builder: Allow --upload to a directory.

Also set the owner and permissions on the destination file correctly.
builder: Add --write option to write a literal file.
builder: Document how to boot VMs directly in qemu or KVM.
firstboot: Send the output to the console as well as to the log file.

For systemd:
Currently stdout+stderr go to the journal (these are effectively
empty unless there are gross errors).  The output of the commands
goes to the log file.

With this change, the output goes to the journal, the console and
the log file.

For SysV-init:
Currently stdout+stderr go to the console (but these are effectively
empty).  The output of the commands goes to the log file.

With this change, the output goes to the console and the log file.
./run: Adjust $PATH to include all libguestfs binaries.

Instead of typing:

  ./run ./fish/guestfish ...

you can now use:

  ./run guestfish ...

This is shorter, but there are also two good reasons for this change:
It never made any sense to run the system-installed guestfish (or
other) binary.  It would be unlikely to work.  Also binaries in
libguestfs should be able to call other binaries freely without adding
special exceptions (which we had before this change).