Versioned now creates a new version if the version is 0

Hello,

Previously writing an object to staging and then publishing it resulted in a version number mismatch between staging and live. Now the code is changed to check for 0 as a version number.

I've found this issue while trying to publish a SiteTree descendant. After doing ->writeToStage('Stage') and ->doPublish(), the above case occured and the item was being shown flagged as deleted from draft in the cms.
You could change this whole line into if(empty()), since empty automatically takes care of unset variables.