Made JsValue's layout explicit

Because a struct is either a bool or a double or a string
pointer...etc., the layout can be optimized by setting all the fields to
the same location and assigning the important field last, which makes
its memory be notable. This makes the struct a guaranteed 96 bits,
rather than 232.