Support specifying file size before hand

This solves the problem that some tools don't display the correct
size when listing the files of the archive, but also fixes zip64
support.
no need to overwrite file_size if specified