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.
That's just an artifact of the "infinite" nature of Columns. They technically don't have a size, so the default `toString` prints the first 5 elements. Since the 4th and 5th elements don't exist, you get `NA`s, as expected.