add CallContext::fail and get rid of try_dispatch_call. rpc library is now free of unsafe code