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.