Caching is now functional

 - And asynchronously update the cache
 - Added last geolocation to the cached JSON
 - Do not update the cache if an error occured while fetching
 - Only trigger an event once, independent of Model instances
 - Only fetch data once, independent of Model instances