change fulfilling => pending to align with terminology in other promise libraries
go back to the parameterized versions of wheneverAll, etc. and fix up the macro method