Move TupleN type class generation to compile time.

This makes the gen-product-types task a sourceGnerator for spire, so
that we don't need to version the files anymore. They'll now be
generated on-demand for compile.

The only thing we should worry about is that users may not know we have
these instances anymore, so we'll need to make sure this is well
documented.