Begin unifying logic for constraint building (#14406)
Implements support for unpacking varlength tuples from *args, but
because it became apparent that several parts of constraints building
were doing nearly the same thing for typevar tuples, we begin extracting
out some of the logic for re-use. Some existing callsites still should
be switched to the new helpers but it is defered to future PRs.