Rename "VNC" to "viewer"
Move AspectBin within view.py
Add abstract base class for display viewer

and stop exposing gtkvnc.Display interfaces on the VNCWidget interface.
Autodetect qemu SPICE support and existence of SpiceClientGtk
Only use AspectBin inside VNCViewer

The SPICE viewer can be told not to scale up the display, so we only need
AspectBin for VNC.  The SPICE viewer also needs a placeholder widget that
doesn't work well with AspectBin.
Move AspectBin within view.py again
Use SPICE viewer when possible

Fall back to VNC if SpiceClientGtk is not available or qemu doesn't
support SPICE.
Enable audio in SPICE viewer
Fix incorrect sizing of VMWindow

We were firing the viewer-resize signal before the SpiceClientGtk.Display
had a chance to change its size request.  This caused a race with the
window resize that we force, sometimes resulting in an incorrect window
size and a downscaled guest.  Fix this by firing viewer-resize only after
the Display updates its size request.