Added cancel option to core _execute_yield_command, updated the monitor, subscribe and psubscribe to use that option to properly cancel on any break.
Removed multiple _execute_command_n which was incorrectly used here and there. Rewrote _read_response to use a dict for faster parsing and easier reading. Modified multi-bulk response to just rerun _read_response, eliminating error in handling nulls within response. Added semaphore to eliminate threading issues that garbled replies during rapid requests.