This change uses json to serialize an exception so that it can be sent
through RPC calls to be reconstructed on the other side. The traceback is added
to the exception message. If recreating the exception fails for whatever reason
then a RemoteError is created containing all of the exception information.
Adds flag 'allowed_rpc_exception_modules' to prevent dangerous modules from
being accessed and allowing arbitrary code to be run.
Fixes bug 920705
Fixes bug 940500
Change-Id: Ife3b64b19fe8abbc730184d4ee7d9fcabfd29db3