Fix issue with message extraction not working properly.

Summary:
An issue was coming up where inline strings after the messages were causing problems in the injection of `$._(...)`.

For example some problematic lines from `javascript/profile-package/focus-graph.js`:

```
$._("<b>%(exercise)s</b> (\u25a1\u25a1\u25a1\u25a1\u25a1, <b>%(star)s\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1</b>)", {exercise: segment["exerciseTitle"], star: this.star})
$._("<b>%(title)s</b> (\u25a1\u25a1\u25a1\u25a1\u25a1\u25a1)", {title: segment["playlistTitle"]})
```

In the first line everything before the `]` was being replaced with the string. In the second one everything before the `)` was replaced with the string.

This was fixed by moving the `message_end` detection to occur whenever the messages were added to the message list (whenever a `,` or a `)` is hit). This works fairly well except it was causing problems with the first line above - no everything before the second `,` was being replaced with the string. Thus I made it so that not only `(...)` but `[...]` and `{...}` all increased the call stack length and made it so that messages wouldn't be extracted from inside of them.

Test Plan: Delete `genfiles/translations/*/javascript/profile-package/focus-graph.js`, run `deploy/inject_i18n_strings.py`, and make sure that `genfiles/translations/boxes/javascript/profile-package/focus-graph.js` looks correct.

Reviewers: csilvers

Differential Revision: http://phabricator.khanacademy.org/D2104
Simplify token lookup.