Fix Json macro when passed case classes with a single custom generic field

Prior to this, a compile-time error would be thrown when trying to create a Json formatter for a case class with a single field that is of a custom type-parameterised type.

This change fixes that and simplifies some of the logic when trying to get unapplyTypes.
@dragos Thanks a lot. That worked. I think not many people know that this is the canonical way of detecting whether or not something is a Tuple (at least Googling didn't turn up anything).

Just for my understanding, does this work by going through a generated `TupleClass` sequence that contains `TupleXX` symbols and checks to see if there are any that match the type of a superclass of `t`? The `ne` got me a bit confused since it's the first time I've seen it, but I gather it's basically a check to see if `baseType` returned a `NoType` (i.e. there is no matching super type for `tupleSym`).