Ensure map options are respected after free-drawing polygons
race for polys seems fixed, waitGo made into array of promises, and figureoutState put into the lock of promises (existingPieces)
waitToGo passing cancelCb back to _async.each to fall through. It is
almost working, but the _async.each iterator is not getting the value
from its closure.
issue #979 close to being resolved
IT is fixed for polylines and polygons, next step is to update the rest
of the parent models.

Markers and Windows.
save off of working markers with new waitOrGo implementation
more speed by killing first promise in the queue, as there are usually only 2 in the queue at a given moment, either way the first being killed will cause the others to resolve faster down the chain
using debug in logging for marker-child-model instead of warn
windows-parent-model updated to new waitOrGo with cancelablePromises
build all from all issue #979 work
Merge remote-tracking branch 'origin/master' into nick_mc/issue_979/polys_race

Conflicts:
	dist/angular-google-maps.js
	dist/angular-google-maps.min.js
	dist/angular-google-maps_dev_mapped.js
	dist/angular-google-maps_dev_mapped.js.map
	dist/angular-google-maps_dev_mapped.min.js
	dist/angular-google-maps_dev_mapped.min.js.map
build all post merge
figureOutState must be part of the promise to so that it only gets it's state when whatever prior promise b4 it is done
whole build
_this.destroyPromise() no longer needed in onDestroy on any parentmodels

_async
- waitOrGo on first promise canceling , double check that it can be
  canceled
reducing code bloat and putting init checks into polygons and polylines

Conflicts:
	dist/angular-google-maps.min.js
	dist/angular-google-maps_dev_mapped.js.map
	dist/angular-google-maps_dev_mapped.min.js
	dist/angular-google-maps_dev_mapped.min.js.map
merged cherry-pick from beta
post merge/cherry-pick
Fix for:  icons to be rendered along the polyline.

Describes how icons are to be rendered on a line. 

If your polyline is geodesic, then the distances specified for both offset and repeat are calculated in meters by default. Setting either offset or repeat to a pixel value will cause the distances to be calculated in pixels on the screen.
simplifying things:
- more readable
- promise stuff moved to uiGmapPromise
- waitOrGo is now PromiseQueueManager
- managePromiseQueue encapsulates PromiseQueueManager(aka waitOrGo) and
  its cruft.
- promiseLock is an aliase to managePromiseQueue , maybe decide which
  name to keep
build all