Rename productArity in pattern matcher to prodArity

productArity is a method defined in ProductN which is inherited from
case classes. It is possible that it will be usewd in the implementation
of pattern matching in the future. The previous implementation used
the same name to mean something else: Not the arity of the case class
itself but the arity of the pattern/type it represented.

Renaming to prodArity avoids the confusion. Review by @DarkDimius