Make git_push parse its refspecs using git_refspec.
Make push use the remote push specs instead of having its own list.
Set an error message in case refspec parsing failed.
Whitespace.
Clear the remote refspecs before setting new ones.
Don't check empty src refspecs

git_revspec_parse returns empty strings instead of NULLs, so "delete" refspecs would try to have "" resolved and fail.
Resolve more invalid push refspecs.
Fail the last test for real.
Make `git_push_transfer_progress` a `git_transfer_progress_callback`.

Maybe the names of `git_transfer_progress_callback` should be made clearer though.