Option --root-dir to manually specify a common prefix for preserving directory structure

Allows transcoding of a subset of directory content while preserving
directory structure.

For example:

  ./flac2mp3.py -o transcode /Volumes/music/johns-favs

will create and preserve only sub-directory structure under
music/classical, whereas:

  ./flac2mp3.py -o transcode --root-dir /Volumes /Volumes/music/johns-favs

will create and additionally preserve directory structure music/johns-favs/*
Only enumerate files upfront if we need to automatically calculate common_prefix

If user supplied --root-dir then we do not need to calculate the
common_prefix in the input files.
Support --preset and -Vx lame encoding options on the command line
Support providing a list of paths to transcode as a file or stdin

For example:
    find /Volumes/music -type d -name "P*" | ./flac2mp3.py -o /Volumes/mp3-transcode -d /Volumes/music
and:
    ./flac2mp3.py -o /Volumes/mp3-transcode --file transcode-list.txt
and 'interactive' stdin mode:
    ./flac2mp3.py -o /Volumes/mp3-transcode -f - < /dev/stdin

Jobs are now dispatched individually with apply_async for lazy line-by-line
evaluation of the input file, without needing an EOF.  Useful with stdin
as input.
Report errors making directories.  Fixes error reporting regression in previous tmp file changes.

Lame no longer reports output file errors because it outputs to stdout, so we
must handle our own file errors
Show full filename in logs
Fix typo in README.md