Checks a vector of names only contains unique items and if they're not,
unique names will be created. Also, the items must be
suitable for columns names. Function is strict so that if the vector is not
valid or it cannot be coerced to be one an error is induced.