let `say` be a term, rather then a sub

If it is a sub it will pollute nested v6 blocks.
allow subroutine forward declarations
handle missing <block> in routine_def