ZFILTERSTORE

This commit adds the ZFILTERSTORE command, which works like ZUNIONSTORE
except that the command takes an additional "template" argument, and only
values that are in the template are aggregated.

The command allows for a much faster way to rank a subset of members
across a series of input sets, and can replace the following pattern:

ZINTERSTORE tmpset1 2 template input1
ZINTERSTORE tmpset2 2 template input2
ZINTERSTORE tmpset3 2 template input3
ZUNIONSTORE outset 3 tmpset1 tmpset2 tmpset3

The prototype of the command is like so:

ZFILTERSTORE <outset> <num input sets> <template> <set1> ... <setN>

I'm not sure if other people use this pattern for filtering and ranking items in a ZSET but it sure seems like one that would be pretty common.  Also, this is the first time I really played around with Redis internals, so just let me know if I'm doing something silly.  I get no complaints from valgrind nor does it appear I'm leaking memory, but it's always possible.

Cheers,
Mike