Replaced some uses of wait() by wait_all()
Added tuple support to unwrapped. Added overload unwrapping without a callable, replaced uses of wait() by unwrapped()
Split when/wait into its own headers