send a packfile if there is an update/create cmd

Add check for update/create commands (non delete commands)
when deciding to send a packfile on send_pack.

According to the pack protocol for receive-pack at

https://www.kernel.org/pub/software/scm/git/docs/v1.7.1/technical/pack-protocol.txt

A pack-file MUST be sent if either create or update command is used,
even if the server already has all the necessary objects.  In this
case the client MUST send an empty pack-file.   The only time this
is likely to happen is if the client is creating
a new branch or a tag that points to an existing obj-id.
Remove delete commands when no delete=refs

Add check for no 'delete-refs' from server and remove commands.
Additionally, report as if these commands failed.

According to the pack protocol for receive-pack at

https://www.kernel.org/pub/software/scm/git/docs/v1.7.1/technical/pack-protocol.txt

If the receiving end does not support delete-refs, the sending end MUST
NOT ask for delete command.