Support escaped backticks in template literals

This is a totally valid use but since the lexer just looks for the next
backtick as a marker for the end of the literal, things fall apart
quickly.

I added this use to the fixture, as well as one for literals without templates... just in case.
This isn't really correct --- [11.8.4](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-literals-string-literals) explains the grammar pretty nicely.

So, the BNF for this is like this (only including the ones needed for SingleEscapeCharacter, which is what this production is) --- so basically, if we encounter this character, we are never ending the template literal (or string literal), the `inTemplateLiteral` state doesn't really matter here.

```ebnf
SingleStringCharacter : SourceCharacter but not one of ' or \ or LineTerminator
                      | \ EscapeSequence
                      | LineContinuation
                      ;

EscapeSequence : CharacterEscapeSequence
               | 0 [lookahead ∉ DecimalDigit]
               | HexEscapeSequence
               | UnicodeEscapeSequence
               ;

CharacterEscapeSequence : SingleEscapeCharacter
                        | NonEscapeCharacter
                        ;

SingleEscapeCharacter : '
                      | "
                      | \
                      | b
                      | f
                      | n
                      | r
                      | t
                      | v
                      ;

NonEscapeCharacter : SourceCharacter but not one of EscapeCharacter or LineTerminator
```

A better check is more like this:

```js
if (/['"\\bfnrtv]/.test(char)) {
  // SingleEscapeCharacter --- add the corresponding CV to the string literal
} else if (IsLineTerminator(char)) {
  // LineContinuation --- I'm pretty sure you always add U+000A here
} else if (IsDecimalDigit(char)) {
  // Ignore this for now because this part of the spec doesn't seem to make a lot of sense --- Why do we have a separate production for \0 and \ DecimalDigit? What about multiple DecimalDigits?
} else if (char === 'x') {
  // Scan 2 subsequent HexDigits --- their value is the value of the character, add it to the literal
} else if (char === 'u') {
  // If the next peeked byte is `{`, scan all HexDigits that you find, (must be less than U+10FFFF) --- add this
  // character to the literal, and finally scan a right brace. Otherwise if the next peeked byte is NOT the left brace,
  // then scan 4 hex digits, the character is the value of these 4 hex digits.
}
```

For reference, you can take a look at https://github.com/v8/v8-git-mirror/blob/master/src/scanner.cc#L680-L728 or https://codereview.chromium.org/716423002/ --- there are probably similar bugs in SpiderMonkey for this stuff that would be good to look at.