Find all possible column names in list of dicts

Rather than relying on the first element to tell us all the column
names, we iterate through all the list of dicts collecting the
column names.  This accounts for when new keys are defined in
rows other than the first.

Fixes #199