created a primitive transcoder command that will ensure a docker container is running to do transcoding in, send the requested SVG files up to it, and then if it created the instance, tear it back down.
made a withDocker method that accepts a closure of work that will be given the host/port string for a docker instance to use for "stuff"
added auto-numbering to output files that would collide w/in the same run
changed targetFromSource to return derived paths, not canonical ones, but still use canonical paths for the duplicate checks
refactored the HttpClient resource, the post body bundling, and the response saving into helpers
added checking the response status code and raise IOException if anything other than 200 OK
if the source file's extension is ".svg", strip it before creating the target file.  if it's anything else, just suffix to make the target.
pulled DockerUtils out of TranscoderCommand
pulled the HTTP stuff out into a new HttpUtils and simplified the API a bit
made a helper for creating unique file names w/in a run, including suffix stripping and appending and updated TranscodeCommand to use it
moved the eachFile iterator to FileUtils and renamed 'targets' to 'inputs'
made TranscodeCommand abstract and created PngCommand that subclasses it to do PNG transcoding
created a PDF transcoder command analagous to the PNG one