Dev js improvements

Improvements to Reflect/Math for JS target.

Effects Reflect.field, Reflect.setField, Reflect.hasField generating optimal code (including a small change to genjs to prevent incorrect code generation picked up on by unit tests (which pass btw)).

Effects Math.NaN/POSITIVE_INFINITY/NEGATIVE_INFINITY/isFinite/isNaN generating optimal code again when not accessing via Reflection.

It's a shame we can't completely get rid of the additions to the Math object that are necessary to allow reflection to work.. ah well.