Check header without schema

The column validation was only applying if there was a schema, so refactored to check for duplicate/blank column names separately to schema validation.