Headers are now passed as an argument

I wanted to enable easier customization of columns, and also remove the
black-magic that was filling cells in a row.  There is now a 1:1
relation to cells being filled and functions being called.