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.
None of this is incorrect - we just don't want to be rebuilding columns all the time when we're just making changes to the `Index`.