Fix for bug in do loops and if blocks introduced in previous merge. 

In my previous pull request there was a bug that I missed regarding `end do` and `end if` statements when embedded in programs, functions, and subroutines. This pull request contains a fix for these issues and introduced line continuation operators `&` into Modern Fortran.