Move handling of RowData to Exchange (StoreData) into StorageDescription

This is not a very good API for custom formats, but the plan is to get some formats working before coming back and making RowData just a peer.

Also includes some generics work to make storage descriptions receive a clean set of objects that don't need to be downcasted there.