Fire progress callbacks also for pushes.

It's not very useful to only know that a pre-receive hook has declined
a push, you probably want to know why.
Check the return codes of remote callbacks.

The user may have requested that the operation be cancelled.
Rename progress callback to sideband_progress
Don't redefine the same callback types, their signatures may change
It is safe to free() a NULL pointer
Correct argument order of git__calloc()
Fire update_tips callback also for pushes.
Verify update_tips callbacks in push test cases
Merge pull request #2284 from jacquesg/push-progress-callback

Fire progress and update tips callbacks also for pushes.