Fix 1096, 1131, 1828: Improve error messages for generated tokens

Ok, here we go. Fixes #1096, #1131, #1828 and hopefully the hundred duplicates out there.

Pointing out errors not handled by this would be welcomed.

```coffee
# Unexpected interpolation
    [stdin]:1:3: error: unexpected string interpolation
    {"#{key}": val}
      ^^
  # Implicit ends
    [stdin]:1:3: error: unexpected ,
    a:, b
      ^
  # Explicit ends
    [stdin]:1:4: error: unexpected )
    (a:)
       ^
  # Unexpected end of file
    [stdin]:1:3: error: unexpected end of input
    a:
      ^
  # Unexpected implicit object
    [stdin]:1:13: error: unexpected :
    for i in [1]:
                ^