All Rust commits from Facepunch
Fix binary saving overwriting the beginning of the previous save but leaving without truncating the end