Refactorings

Reorganized imports

- Added future imports
- Correct grouping of imports

Moved common code from environment subclasses to CommonEnvironment

- `get_os_string` is already in CommonEnvironment and does not need to be redefined.
- Moved `is_file` method to CommonEnvironment.
- Converted methods of environment classes from `staticmethod` to `classmethod`.
- Added or corrected many docstrings.

Other Fixes

- Fixed dangerous kwarg default. Never use mutable objects as kwarg default.

Please review, @cfaessler