More explicit AIS and RowDef usage

Both motivated by the need to write rows *not* formed from the AIS visible to the current session. Specifically, concurrent DML while an online change is in-progress.

First chunk gets more explicit about where an online AIS coming from. Instead of having getAis always check, add a new method to get it explicitly. Update the online path correspondingly.

Second chunk is really a cleanup of AbstractStore. The top level entry points now do the RowData to RowDef look-up once and pass it down. The (now removed) `set/getExplicitRowDef()` were used to achieve this before but that was more subtle than needed. A nice side benefit is that a given RowDef won't be looked up 5 or 6 times for processing a single DML anymore.