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
Another way to submit models which totally avoids the need for watchers. This is a sneak peak of where I think 2.1.X should head. 

2.1.X
- few watchers and shallow (watchCollection and watch without object Equality)
- use Control to update explicit state changes (no guessing in the API)

Watchers