Massive refactoring to remove nonstandard getters

The 'prop getter' syntax is nonstandard and isn't supported by newer
versions of JavaScript.  I think I fixed all the bugs related to this
change, but not totally sure...