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 multi-line constructs like `do`, `forall`, `select type`, etc..., where program end statements would consume and stop on their end statements instead of their own. This contains a fix for  these issues and introduced line continuation operators `&` into Modern Fortran.