On a list the marshaling was not being respected when Insert at a specific index was used

For example: 

```ruby
@list = Redis::List.new
@list << {a: 1}
@list[0] = @list[0].tap{|list| list[:a] = 2}
@list[0].should == {a: 2} #FAILS
```

This is now passing, I also fixed a spec that interpreted the redis sort command incorrectly and was therefore failing. (At least I interpret the documentation differently)