Fixes up issues when tracking dirty changes on numerical or empty string values because json.net converts numerical to long and we were setting those values on the Property.Value which means that comparing long -> int will always return false and thus the property is flagged as dirty. Same goes with string and null when dealing with an object. This is all fixed up now and have added another method to see if we shold actually persist any changes for content when saving. This all relates to fixing: U4-5510 Previewing a content item saves that item