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

Refactor to make $q Promises A+ v1.1 compilant
The speedup in v8 will vanish soon, it's coming from forcing the map to be optimized, but there's a CL to make temporarily slowed prototype maps fast again, so this won't be an issue in future versions