Improve parser function types
Remove use of do from section open parser
Add error msg to section open parser
Remove un-needed do notation
Remove remaining do notation
Rename Line to DirectiveT

DirectiveT just stands for "Directive Type", the rename is needed
because the parsers parse more than a line so it was not correct to have
a type "Line".