Optimized cursor.getDataSet() marginally.

A previous commit obviously meant to do this because it did:

getDataSet = self.getDataSet

This commit just makes the non-local lookup unnecessary.
Refactored the 'ret' local variable out of biz.getDataSet().
Fixed getDataSet() to not move the RowNumber.

When VirtualFields are involved, the row change callback is
invoked, which results in the record pointer moving. This
commit makes sure the RowNumber is as it was prior to calling
getDataSet().