Refactor Frame API to use Cols/Rows.

This adds the new Rows/Cols abstraction for working with col/row extractors. Many methods on Frame change to use these instead, so it is very much a big breaking change.
Yes - I really need to write up a quick review of the internal data structures and how they fit together. Useful for understanding why things are the way they are.