"columns" returns map of columns

"columns" returns map of columns
column order doesn't matter for equality
doc strings
add unit tests for dataset protocols