Software Secure message signing pt. 2

Fixes another unicode bug (turns out json.dumps can return str or unicode depending on args). Also extends Software Secure message signing code to handle more complex data structures. That being said, we are still getting incompatibilities on the receive side, so I'm falling back to authenticating messages using the shared access key rather than signing. We still sign messages to SS, which has always worked. @dianakhuang