Message storing middleware should attempt to update messages rather than simply writing new copies.

Currently the message storing middleware simply creates a new message object every time it encounters a message. As explained in http://docs.basho.com/riak/latest/references/appendices/concepts/Vector-Clocks/#Siblings a well-behaved client should read old objects and update them rather than continually the writing new objects to the same key.

In Vumi Go production the current behaviour appears to be causing incidents in which the wrong copy of a message is selected when a message is written by multiple message storing middlewares on different workers.