Use case: Visually track change attribution across remote clients. [#224] allows to store `metadata`, which contains `userId`, but falls short of pushing `metadata` out to remote clients. ## Proposed solution: ### On a server side: Retain backend constructor options in order to pass around `options.opsOptions` to configure metadata behavior. Include `message.m` in agent's `_sendOp` based on `backend.options.opsOptions.metadata` configuration. Include `op.m` in SubmitRequest based on `backend.options.opsOptions.metadata` configuration. ### On a client side: Emit `op.m` with every `op` related event. ``` this.emit('op', componentOp.op, source, op.src, op.m); ```