Fix string decoding in LiteralToken.js

`StringParser.parseEscapeSequence` was switching on the result of `StringParser.next` as if it were a raw value, but it's actually a generator result (`{value: foo, done: false}`). This meant that it was failing to decode escape sequences properly. i.e a string like `hello\nworld` was actually being parsed into `hello[Object object]world`. I have no idea how this ever worked. I wrote a couple of tests so you can see what I mean.