Add partial output to POSIX::Spawn::Child

This always keeps the output of a spawned child, even when an exception needs to be raised.  To make this work, this requires that the `exec!` method of the child can be deferred from the creation of the `POSIX::Spawn::Child` object, too, so this also adds a `:defer` option to the constructor.