add vnc support

Note that there is a race condition when starting two vncservers at the same
time.  The condition is handled by catching the error waiting a random amount
of time and retrying.

VncTools used an outdated flag in ffmpeg so recording_vnc_listener had to
launch the ffmpeg process.