Redmine#3991: support data containers in module protocol

see https://cfengine.com/dev/issues/3991

documentation will be done after merge