feat($q): add Promise.progress shorthand for notifyCallbacks

Shorthand method for $q promises that allows attaching a progress
callback. Provides the same type of convenience as the existing
catch shorthand method, and matches functionality existing in the Q
library.

This should resolve the only remaining concern addressed in #1998

Closes #1998