compose: Two small fixes

1) [taskbase] import fail_msg module so failure to find config
   file is properly displayed to stdout
2) [imagefactory] added conditional to check if imagestmpdir
   exists prior to the mkdir()
treecompose: Make rpmostreecachedir optional

If rpmostreecachedir isn't provided, don't require it and
don't send cachedir to rpm-ostree.
flake8 exception: lengthen line length to 160

Lengthen default 80 character length to 160 to keep python code
readable and somewhat sane.
config.ini: Put rpmostree_cache_dir in outputdir by default

workdir is meant to be a per-task run, so it doesn't make sense to
cache anything there, as it'll be cleaned up.
installer: Require output dir specification

Previously we'd hardcoded images/<partial checksum>, but I'm finding
that what I really want to do is stage my choice of images, and then
put them into place manually.  Or if not manually, in a more flexible
way that can be encoded into this script.

So this change then just forces callers to specify an output
directory.