A Javascript class that manages HTML5 Geolocation with fallback to IP-based geolocation