Fix wrong location issue in heregex interpolation

The location of heregex interpolation is broken.
I added 8 test cases for this problem and fixed.

Heregex code:
```
///
#{a}
b
#{c}
///
```

Tokenize without this patch:
```
[ 'IDENTIFIER',
  'a',
  { first_line: 0, first_column: 3, last_line: 0, last_column: 3 } ] [ 'STRING',
  '"b"',
  { first_line: 1, first_column: 1, last_line: 1, last_column: 3 } ] [ 'IDENTIFIER',
  'c',
  { first_line: 2, first_column: 1, last_line: 2, last_column: 1 } ]
```

Tokenize with this patch:
```
[ 'IDENTIFIER',
  'a',
  { first_line: 1, first_column: 2, last_line: 1, last_column: 2 } ] [ 'STRING',
  '"b"',
  { first_line: 1, first_column: 4, last_line: 2, last_column: 1 } ] [ 'IDENTIFIER',
  'c',
  { first_line: 3, first_column: 2, last_line: 3, last_column: 2 } ]
```
Fixed type and squashed.