Check that item is string when creating a new table column

Previous version broke setting rows with t[1] = (values) because
it tried to create a new column 1.  Instead make sure the item is
a string and is therefore referring to a column name.
Fix problem adding new column to an empty table
Add tests for creating a new column using item setter