vmnetx.generate: Permit disabling copy_memory() progress reports
vmnetx.generate: Generate copy_memory() progress messages directly

rather than relying on the compressor to do it.  We accomplish this by
always reading the input file ourselves, rather than passing the input
fd off to the compressor.
vmnetx.generate: Move copy_memory() stdout flush into report helper
vmnetx.generate: Support decoding compressed images in copy_memory()
vmnetx.generate: Add lzop compression support to copy_memory()
vmnetx.ui: Add some additional logging of memory image events
vmnetx.package: Move low-level file-like objects into vmnetx.source
vmnetx.server: Drop stray import
vmnetx.source: Allow source_open() to take filename argument
vmnetx.package: Move generic parts of _PackageObject into vmnetx.source
Rename some classes
vmnetx.generate: Don't recompress memory if not changing algorithm
vmnetx.controller.local: Recompress memory with LZO on first launch

Memory images are typically compressed with LZMA, which causes launch
to be CPU-bound in decompression if the memory image is locally cached.
30 seconds after finishing VM launch, start a background thread to
recompress the memory image with LZO if not already recompressed.  On
subsequent launches, resume from the LZO-compressed image.

We could, instead, recompress while qemu is still reading the memory
image.  When fetching the memory image over a slow link, this would be a
good use of unused CPU time.  However, it would be difficult to ensure
that this never slows the launch (e.g. on single-core systems, fast
networks, or for memory images already in cache).  We would also need
to ensure recompression never gets ahead of qemu in reading the memory
image, since that would cause misleading progress bar updates.  So we
stick with the simple solution for now.

Fixes #52.
Fix vmnetx/vmnetx-server crash on SIGPIPE if recompressor dies
vmnetx.generate: Reap compressors after copy_memory() failure