SI-8295 isCaseClass no longer returns true for module classes

The notion of isCaseClass being equivalent to isClass && hasFlag(CASE)
is quite misleading. I spent quite some time staring at some branching
code in shapeless generic synthesis not realizing that `tpe.typeSymbol.isCaseClass`
can also return true when tpe is a singleton type derived from a case object.

Therefore I think that we need to split this into `isCaseClass` and
`isCaseObject` and have them kept separate.