restructure Cakefile a bit
Many improvements:
 - Fixed many situations where async operations were not properly observed. Most of the
   time, they went unnoticed but could fail under some circumstances.
 - Added a Barrier class to make it easier to synchronise async calls.
 - Markers that don't have a location but have an address will see their
   location completed by geocoding the address.
 - added a fitView method that computes optimal zoom and position. Can
   optionnaly use the one provided by google.
 - added an option to compute distances using routes instead of geodesic distance.