Tidy up questionaire html
Fixed Enso JS bug where empty_P is defined wrongly for Array

empty_P was defined wrongly as length > 0, causing Print.print to not print
arrays (assuming they were empty).
Fixed array access in enso.js to accept ranges

Array access is often used in Ruby to get a sub-array, eg a[1..4]. This was not
previously supported, and now it is. The output is a new array (copy).
Fixed gsub in enso.js to behave as Ruby's gsub

Gsub() in enso.js was previously aliased to replace(), but unlike replace, gsub
substitutes all occurences in the original string. This behavior was changed in
this patch. Also, note that repeated applications of replace() does not work
when the new string contains the substituted string, eg "aaa".replace("a"," a")