Change behavior of df.TryGetRowAt back so that it returns a row based on its (int) index

In retrospect, this is probably not very useful method anyway. Perhaps we should remove
it and leave just `df.GetRowAt` and rather than returning optional value, we could throw
OutOfRange exception when the index is invalid.