Make pre-push hook a little more friendly

 * If deleting a remote branch; don't do the full verification pass.
 * If there are no changes to push, don't do the full verification pass.
 * If there are unstaged or uncommitted changes then the verification
   pass doesn't really help, so prevent pushing when there are unstaged
   or uncommitted changes.