Auto merge of #468 - paul-scott:master, r=badboy
Auto merge of #468 - paul-scott:master, r=badboy

Prevented uv adapter from calling write when context has been freed

The `redisLibuvPoll` function can be called with both the `UV_READABLE` and `UV_WRITABLE` flags set at the same time.  Calling `redisAsyncHandleRead` can lead to a disconnect and the context being cleaned up/freed.  If this happens then `redisAsyncHandleWrite` should not be called otherwise memory read/write errors and duplicate freeing will occur.

These changes prevent this from happening by having the `redisLibuvCleanup` callback indicate that the context has been cleaned.  This is done indirectly by setting the context to a null pointer, maybe someone can come up with a cleaner way.

charsyam/hiredis,jinguoli/hiredis,thomaslee/hiredis,redis/hiredis,redis/hiredis,charsyam/hiredis,jinguoli/hiredis,thomaslee/hiredis,redis/hiredis,jinguoli/hiredis