'else' and logical negation '!'

Also updated tests and added a new one.
Added goto statements and labels
Handling proper scoping rules combined with goto's is a pain
I half expect there's an edge case or 2 I haven't considered.
I need to expand my goto test cases and combine it with functions
especially recursive functions.

Also added support for comments and underscore in identifiers which
which I'd forgotten.