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.
Fixed dangerous kwarg default

Never use mutable objects as kwarg default.