Define Program node extent to be the whole program, make both parser and the tests conform to this. Fix a bunch of bugs in the loose parser's handling of corner cases. Issue #151