optimize Cluster typing and remove InteractionClient being changeable (#286)
* InteractionClient is not changeable anymore
* InteractionClient is not changeable anymore
* Split CLusterClient into Internal and External types
* Split CLusterServer into Internal and External types and adjust all places
* Finalize ClusterClient API and add missing parameters
* Convert/Cast Cluster objects to internal types where needed
* no clone needed anymore
* latest adjustments
* adjust strange type error that popped up out of nowhere
* Make cluster server "ObjInternal" extend "Obj"
* Address review Feedback
---------
Co-authored-by: Greg Lauckhart <greg@lauckhart.com>