Make new channels for every call.

Previously, the result channel could be accessed by multiple rpc calls which
could result in the wrong value being read by a different api. Create a function
that makes a new channel, reads the error from the function but also supports a
timeout.