templates: disallow engine/template exts

This sets up disallowing certain extensions as valid template exts
for binding engines and looking up templates files.  Right now the
only ext disallowed is `.rb`.

The reason we want this is that there are times you want to name
the template after a corresponding ruby file - maybe the handler
and the template have the same name - one with .rb and the other
with the template extension.

Because of the way glob works, you can't guarantee any order so
if your template file name isn't unique, the glob may get the
wrong file.  We make the glob aware of these disallowed files and
have it ignore them.