If `start` is not specified, the value given for `stop` will be injected into `start`'s position; it would be wise to safeguard against this:

Consider:
~~~ ruby
# attempt to get first 3 bytes
redis.bitpos('foo',0,nil,3)
# BITPOS foo 0 3
# actually get bytes after 3rd byte
~~~

Maybe something like this:

~~~ ruby
def bitpos(key, bit, start=nil, stop=nil)
  if stop and not start
    raise(ArgumentError, 'stop parameter specified without start parameter')
  end
  # ...
end
~~~