Add `token` helper for building token rules

Now you can specify the structure of tokens using
all of the rule functions, not just `str` and `pattern`
Add single quoted strings and regexes to javascript grammar