Write index row impl

This is the other half of the IndexRow updated. This covers the writing data to an index. The `PersititIndexRow[Buffer]` classes were used to do both, despite the two code paths having very little in common. 

Note this depends upon / is continued from the previous pull request.