Parser analysis and errors for labelled statements, break, continue, return

This pull request covers a couple of things:
1. Make sure break, continue, return statements are nested in the right control context
2. Keeping track of labels and making sure jump targets are correct.
3. Checking for duplicate labels

This is all to be done in the parser. Right now I've only done 1 for jumps with no label. Still working on the labelled statements.

I've added a little stub that I will be working in for the label portion. Let me know if you have any suggestions about how to handle this.
i'd honestly prefer this was just repeated and htere was no fallthrough above.  but up to you.