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

Refactor to make $q Promises A+ v1.1 compilant
I would prefer it if we got rid of callOnce entirely, because it's a silly and expensive way to solve a very simple problem