Pump: .pause() is now async

A .process() may be in progress when .pause() is called, so you cannot
consider a pump paused when .pause() returns. It returns a promise now,
that fulfills when the last pending .process() is finished.
Group: .pause() is now async

It returns a promise that resolves when all of its pumps are paused.