feat($q): added support to promise notification

It is now possible to notify a promise through deferred.notify() method.
Notifications are useful to provide a way to send progress information
to promise holders.
feat(): added support to promise notification - rebased and made some changed.