Rewrote the when_all() and when_any() implementations with custom metaprogramming to hopefully work around the ICE on VS2010.