.x & .y as accessors

Replace the dumb layer functionality with the ability to define
accessor functions for arrays and other attributes. Fix the hard-coded
parts of map.js that were still pointed at “x” and “y”