add redshift_exclude_default_columns, redshift_connect_timeout and some more verbose exception handling
tidy up spec
only fetch table columns if they have not been fetched already
enrich logging