title: union overlapping polygons until no overlap
body: <p>I have a list of geometries(could be a point or polygon) and I need to union the geometries that overlap(or contained within another geometry) in to one geometry. Any ideas on how to do this efficiently using shapely? I believe I should be using rtree but not sure how and where exactly I should use it.</p>
  
  <p>Ex: </p>
  
  <pre><code>from shapely import geometry as gs
  geometries = [gs.Polygon(((0,0), (0,10), (10, 10), (10, 0))),
                gs.Point((5,5)), gs.Point((30, 30))]
  
  #output should be :
  Polygon((0,0), (0,10), (10, 10), (10, 0)), Point((30, 30))
  </code></pre>