Cancel the consumer after callback executed

Currently the consumer for result queue is not canceled after callback and keep lying around. This leads to result queue cannot be auto-deleted from RabbitMQ until the channel is closed and accumulated in RabbitMQ. This fix cancels / removes the consumer after received result and executed callback, thus allows result queues to be cleaned up.