DISCARD command, better cleanup.

Implemented our DISCARD command for RedisCluster

Added a mechanism where we can free any context we have (which is
currently always a zval** array for HMGET arguments), even if we
manually DISCARD the transaction OR if the transactino were to
actually fail.