Separate ? and - into special tokens

This does a few things to the strict parser:

- don't allow `?` anywhere in a variable name
- don't allow `-` to start or end a variable name

@dylanahsmith @xthexder