change layout.source() -> tabdef.source()

change layout.datarows() -> layout.table(), and expose entire table as rows, cols, data