No id columns required on the Sample/Prep templates

Fixes #404 
6 dict lookups in a single line? :frowning: 

Why iterate over `_ignore_cols` only to keep them?

This is referring to two private members of `_md_template`, does that suggest `_str_cols_handlers` and `_ignore_cols` should be public?