reverting to expecting semicolons after every statement

this works well with the semicolon injection. the noticeable
side-effects are:
1.  the opening curly brace of all 'blocks' must be on the same
    line as the block's statement (e.g. functions, while loops, structs,
    etc.)
2.  the 'else' keyword must be place on the same line as the closing
    curly brace of its corresponding 'if' block

Golang shares these same rules due to its injection of semicolons.
types defined in external modules are now parsed

e.g. `std.file`, `vector.point`