refactor($q): make $q Promises A+ v1.1 compilant

Refactor to make $q Promises A+ v1.1 compilant
it is possible to do handle the extra calls in the next `tick`, the code will slightly easier to read and will handle that case somehow slower. I do not mind going one way or the other