issue #979 RaceCondition Nailed

@zacronos @kandizzy @gitnik @cthrax 
I will get to commenting on the PR in a few minutes. This is 3 days worth of work and a whole Sunday of thinking about it.

Everything is based of discussion and ideas @aesnyder and I had on canceling promises.

Seriously complicated PR, and I plan on doing a hangout with @aesnyder and with anyone who cares

Side Notes:

I have tested this on a product and it appears to be solid. I am getting no duplications on markers whatsoever. I still seem to get artifacts on polygons, however this is only on my application and it does not occur with markers (same app). Therefore I think it may be duplicate data in the database for my polys. 

I can not get artifacts to happen on the issue-979-polygons-race or issue-979-polylines-race examples. Same goes for #904, and #621 examples.
As a future refactor, it might be worth considering using https://github.com/angular-ui/bootstrap, which completely replaces the bootstrap javascript and also has the effect of eliminating the jQuery dependency.

As a bonus, this angular-directive implementation of the bootstrap components typically plays better with other angular code than the bootstrap API.