Atomically create package directory to handle failure during init
Atomically create package directory to handle failure during init

Change logic to unzip into a temp directory and only move to the final
package directory on success.  This handles cases where Lambda kills the
container init halfway through, which seems to be a hard process kill
that never hits Python exception handlers.

Uses os.rename, since that is guaranteed to be atomic on Linux.

* Unzip to tempdir
* Make more logic lazy

UnitedIncome/serverless-python-requirements,UnitedIncome/serverless-python-requirements