Merge basic CMCP implementation into main repo.

CMCP implementation is not complete yet and many functions are still missing.
Code is complete in itself and running though. Missing functionality will be added as soon as possible.