Allow customizing temporary file names

Let's allow users to customize temporary files, either by setting `Zip::$temp` to a custom temporary folder or by setting `Zip::$temp` to a callable that returns a custom temporary file name.

Supersedes https://github.com/Grandt/PHPZip/pull/20