parallel: parallel.__exit__ should always wait for greenlets to finish
Per the class docstring, one gevent (or the with body) throwing an
exception should not stop the other events. Instead, wait for them to
finish and then reraise the first exception we find.
A concrete problem caused by this is that with multiple parallel
installs, one failure can cause packaging operations on the other nodes
to be unceremoniously killed and left in an inconsistent state.