Remove nested function eval in blockHelperMissing

This only worked when a function returned a function, which was then evaluated. This seems like unexpected behavior so this was dropped.
Additional test coverage
Provide better error on unexpected template

Fixes #806