Add dependency checks for ClearCase.

Review Request #12546 — Created Aug. 18, 2022 and submitted — Latest diff uploaded




This updates ClearCaseClient to add formal support for dependency
checks. ClearCaseClient.check_dependencies() now determines if
cleartool is installed, and no longer invokes it upon instantiation of
the class.

The ClearCaseClient.host_properties attribute used to be set when the
client was instantiated. Now it's a property that retrieves the
information upon first access, performing a dependency check if needed
(and emitting a warning if one was not already performed).

Unit tests have been updated to include new dependency-related tests.
Since the existing ClearCase tests are designed to use spies to simulate
results, rather than depending on cleartool for test runs, those have
been updated to turn off dependency checks when setting up a client.

Unit tests pass on Python 3.7-3.11.