Adjusted the way push handles “nothing to push” situations.

Nothing to push is no longer treated as an exception.
PushOp will now return true if data was pushed, false otherwise.
Merge remote-tracking branch 'origin/pr/685'