Variadic support for tuple. Adjusted other pieces that were relying on tuple's faux variadics.

Only the interface of tuple uses variadics, to make it possible to use variadics elsewhere. The actual implementation is still preprocessed, to keep a flat layout.
Variadic support for invoke