Ensure that cancelled commands throw a cancelled error, not a timeout
Commands that were cancelled, e.g. because the network connection was lost and so commands in progress were backed out, were throwing timeout errors to callers of wait_until_complete since they had received no response. This was causing e.g. account operations to fail, and the alleged timeout be reported as problem in the UI.
This takes note of whether a command was cancelled and throws an appropriate error in wait_until_complete if so. Callers can then clean up and choose to be more circumspect in their error reporting.
Fixes #285 (closed)