[mypyc] Raise "non-trait base must be first..." error less frequently
It would raise even if there were only non-trait bases, leading to this slightly confusing situation:
class A: pass
class B: pass
class C(A, B): pass # E: Non-trait bases must appear first in parent list
# E: Multiple inheritance is not supported (except for traits)
Now the bases must include a non-trait and the first base must be a trait to error. This leads to some false-negatives when there's more than one non-trait base, but in that case, it's better to only tell the user that multiple inheritance is not supported.
See also: https://github.com/mypyc/mypyc/issues/826#issuecomment-1383215915
This is a draft now because I'd like to also add a check for traits subclassing concrete classes (raising an error if so). It's almost ready to be pushed, but I need to finish the commandline tests and write a good commit message.
Turns out that traits are allowed to subclass concrete classes as long as the MRO is linear (ie. no multiple inheritance just like for regular native classes).