Review js.Dictionary as a generic class <: js.Object.

The design of js.Dictionary has been left in a very primitive
state since the early versions of Scala.js. This reviews its
status, and makes it 1) generic in its element type, like
js.Array, and 2) a subtype of js.Object.

Fixes #258.