Prototype implementation of $q for AngularJS, passing aplus 1.1 spec, and using prototypical inheritance where possible