Allow arbitrary db connections for e.g. postgresql or mysql backends
Foreign keys only reference 'agency_id', so were breaking in Postgresql. Remedy by enforcing 'agency_id' as the sole primary key and populating it from 'agency_name' if it is missing (as is allowed by the spec)
Postgresql doesn't like ints where bools are expected. Convert to bool by first converting to integer (bool('0') was evaluating as True)
Ensure column names as well as values are stripped
Record the agency_id with each class so multiple agencies can be stored in the same db
Add option to first drop all data in the db relating to the agency in question before loading updated data.  Note that session.merge was massively slowing down loading.
Deal correctly with BOM in Zip and plain text files