refactor WaterFountain factory to provide properties "longitude" and "latitude"

uses defineProperty to simplify access to these values - instead of saying "waterFountain.location.coordinates[1]", you can now simply say "waterFountain.latitude"