Backport Fix #1252: Missing asInstanceOf's/unbox'es in scalajsenv.js.

Only one was really a danger, i.e., the result of charCodeAt()
in charSequenceCharAt() with an out-of-bounds index. The others,
being calls to methods of primitive data types, are hardly a
problem, because the implementations cannot return wrong results.
(Of course, they could be overwritten by an evil user, so it's
better to check them.)

Backport: Add unboxes in String.hashCode manually.

(cherry picked from commit 39708c23ef4355db18ae34533dab45ee1e0b7083)

Conflicts:

	tools/scalajsenv.js
	tools/shared/src/main/scala/scala/scalajs/tools/optimizer/Analyzer.scala