allow non numeric/sequential recordset keys

Before this, if you created a recordset with a rowset array that was non numeric (or even just non sequential, which is how we found the bug) it would break, not returning the correct results from the rowset. I've done this pull request cause it's a pretty low level change, wanted everyone to check it before we put it live.