Allow templatizer to accept array of template dirs

Thanks to @malkomalko and @mwise for starting this. This PR just cleans up a little, fixes conflicts with master, and opens up one question for discussion:

What should happen to files with the same path in multiple directories?

Currently I have them being ignored as I thought this was a sensible default. I didn't want to clobber the first one, which would make the first one unused code in the file. I also didn't want to do add the template directory name as another namespace.

Do any of you have gripes with this? @HenrikJoreteg?