Cut overall object instantiation in half by changing file
header generation algorithm, for a 10-15 percent performance
improvement when archive contains lots of small files.

Also extracted two private methods createLocalFileHeader
and createCentralFileHeader in ZipArchiveOutputStream.

These may have some interesting additional usages in the near future.

This is basically a "tactical refactoring"; scatter/gather had a
wonderful performance in the "scatter" algorithm, but spent
an *equal* amount of time in the "gather" phase