Add last test I could think of, also define_block and exec_block

Finally figure out how main templates with a starting block should
function, they should not execute unless the block function is
exec_block. This is kind of a corner case. Also added exec_block (to fix
that corner case) and define_block (since exec_block had to go in).
Update documentation