Adding support for scan command

This is a deterministic ruby implementation of redis ```SCAN``` command. It may differ from original ```SCAN``` output since it just guarantees that a full iteration always retrieves all the elements that were present in the collection from the start to the end. It also does not provide guarantees about the number of elements returned at every iteration (```COUNT```)or the returned collection order. Two indentically configured setups may return a differently sorted collection.
Even if `opts[:count]` is nil here, it will always be coerced to an int (`nil.to_i == 0`) and be used, which is probably not the effect you wanted here. You can accomplish this with

```ruby
count = Integer(opts[:count] || 10)
```