First batch of variadic templates support

Adds variadic template support to `tuple` (partial), `invoke`, `result_of`, `deferred_call`, `bind`, `[unique_]function`, `mem_fn` and `zip_iterator`.