First pass at better CSV parser.
Csv -> Frame support and bug fixes.
Add missing apply 3 case to AxisSelection.
Merge branch 'topic/stats' into topic/demo

Conflicts:
	framian/src/main/scala/framian/RowExtractor.scala
Merge branch 'topic/cols' into topic/demo
Better guesses at empty/invalid cells.
Deal with labeled frames in a sane way.
Include whole row as context in CSV errors.
Optionally allow row-delimiters within quotes.
Comments.
Remove String => numeric cast.

This was added to support converting data loaded from a CSV as Strings
to numeric data. However, the new CSV parser just creates 2 columns, one
for numeric data and one for textual data, then `orElse`s them together.
Add more tests.
Add Frame appendRows and appendCols methods.
Extract classifiers into Classifiers trait
Add tests for filterByValues and filterByKeys
Add test coverage for foreach* methods
Initial work on column refactor.
Add test coverage for filterEntries and cellMapWithKeys
Implement some more methods in DenseColumn.
Add test coverage for some reduce methods