Switch AsyncResult.result to payload and add to_dict method

Convert the result property on AsyncResult to payload and add a to_dict method
that converts the result to a dict. If it has an error status it will stringify
the traceback and remove the exception object to make it serializable.