Support a more flexible data API

Add support for object data maps where the property names for x and y
can be specified using attributes. Falls back to coordinate support if
no property names are specified.