Do not discard pipeline unless in multi.

Fixes an error that occurred if you exec'd a pipeline on which you
hadn't called `multi()`. When an error happened, the code was
automatically calling discard. This causes an a 'DISCARD without MULTI'
error from redis which obscures the actual cause of the error.
Merge pull request #323 from paykroyd/exec_without_mulit

Do not discard pipeline unless in multi.