Fix tag generation for Fortran with 'forall' blocks

Added 'forall' as a keyword and added a check that allows 'forall' as a
secondary keyword in 'end' statements. Now modules are end not ended by
'end forall' statements in contained module routines any longer.