feat($http): upload and download  event

As a solution for #1934 and opposite for #3606

You can add progressCallback using `config.progress`.
Working for all kind of requests — you can even track progress of `delete` requests.

Pros:
1. No compability breaking — all is working as before
2. Better, cleaner and simplier way then q.notify

Cons:
1. No specs and tests here, it's just working
addEventListener is supported in every browser that supports progress events