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.
It can even get weirder - some ops may adjust the index but not the column, so the column may have either redundant data or less data then "expected", because the Index -> Column mapping is neither surjective nor injective :)