Moving json dump for msg into shippers

This changes the interface of the IShipper class. Previously, you would
ship a string, already in JSON format, to the IShipper instance. Now you
pass a python dictionary, and the IShipper itself is expected to handle
JSON serialisation.

The reason we are doing this is we wish to in future create shippers
which may want to introspect on particular fields of the message.