@falkamelung noted a race condition in #106 due to non-atomic directory
checking followed by os.makedirs. This pattern exists in many places
in the codebase so I went ahead and replaced the rest of them.
The new exist_ok usage should be terser and more idiomatic.
ISCE_HOME was only used to get the location of the default logging config.
Lots of scripts were using boilerplate to set up this config, so I added
an `isce.logging` helper module which is the same as builtin python logging
but already has the configuration defaults set up for isce.
ISCE_HOME setup is retained in the toplevel `__init__.py`
but can now be removed without affecting functionality.
This commit adds experimental CMake build support for ISCE2.
The only changes involved should be adding CMakeLists.txt files.
All current source files, headers, and other functionality, including
the existing SCons build system, should be unaffected.
Some functionality is still a work-in-progress.
These should all be marked as TODO in the CMakeLists.txt files.
`grep TODO **.txt`
Please read CMakeLists.txt and .cmake/*.cmake for more info.