basic handling of MULTI/EXEC/DISCARD

Every redis command method is wrapped so we can check if we're in the middle of
a transaction - if so, the query is simply queued for eventually executing when
we receive an 'EXEC' (or deleted if we get a 'DISCARD' instead).
gracefully handle errors while executing MULTI transactions

Note that the perl Redis client currently has a bit of difficulty with the
scenarios being tested here -- see https://github.com/melo/perl-redis/issues/42
add new prereqs (Makefile.PL generated via ./Build dist)
s/Test::Exception/Test::Fatal/ in other tests (Test::Fatal uses Try::Tiny, which we already are using in the .pm)
Merge pull request #6 from karenetheridge/topic/transactions

Topic/transactions