Packaging system now works!

Writing packages had to be made a slightly circuitous process as the payload item InternalLength (required for the manifest) is only available after muxing the payload.
Consequently, payload data must be put into a temporary stream, the mainifest modified with the newly-acquired information, the manifest written out to destination, and then the payload data moved from the temporary stream to the destination.