Rip out row memory management

At a high level, the present scheme is reference counting row pools. Except that instead of returning to the pool on last decref, you ask the row whether it's shared and all the counts are off by one. And all the pools are of size one, which is quite hard to get to work even with trivial pipelining, let along the amount we now want for FDB. As a consequence, there was lots of mechanism for little benefit. And as we move away from Persisit Exchanges, the memory profile is no longer the same.

So, just take it all out for now in anticipation of dealing with performance analysis afresh.

This allows for simplifying the Row class hierarchy. There is no longer a separate RowBase (the bulk of the diff is that change in all the tests). And the oddly named BoundExpressions becomes ValueRecord, in anticipation of it being the basis for the new extensible storage interface.