Unified all interning logic into JsLiteralInterner.

Now any JsLiteral that is a value is interned by a JsLiteralInterner.
For now only strings, regexes, numbers and some object literals (e.g.
the ones for cast  maps) are interned. Object literals that represent
long values should also be internable here, however they are interned
in GenerateJavaScriptLiterals to provide them with a nice variable
name.

A future compiler pass might mark other literals that have value
semantics (i.e. never changed, never compared by reference)s as
internable.

Change-Id: I163cac2622ee72c395bf8ae37ed67862ab74a082
21 files changed