Improve CM API interaction

Improve CM API interaction:

* Cluster state query/assertions
* Idempotent invocations
* Self initialising operations
* Download client config
* Improved integration testing
* Better logging