Use the auto-created filterSpec to build the custom csv form

So the template gets a bit more complicated to set all the settings
necessary, and rather than firing an event to change the type of each
column we set the data in the template (but still use that event for
changes made through the user interface).

Also minor future proofing: if using a pre-made filterSpec, then fill in
the shortName property for any column that lacks it.