allow srandmembers to take an optional parameter for the number of elements

* with negative numbers, redis supports repeated samplings
* behavior with empty sets is different: empty array instead of nil