compiler: improve `poset_from_mtypes` used for type coloring.
compiler: improve `poset_from_mtypes` used for type coloring.

Instead of doing the full matrix mtypes X cast_types, a grouping is done by the base classes of the types so that we compare only types whose base classes are in inheritance.

For nitc/nitc/nitc the result is not that bad:

before:
0m6.584s
17.605 GIr
time passed in poset_from_mtypes: 26.01% (4.579 GIr)

now:
0m5.880s (-10%)
15.088 GIr (-14%)
time passed in poset_from_mtypes: 11.72% (1.768 GIr)

In the best condition, I can now expect to compile in less than 6s.

Note that coloring is still a MAJOR issue in term of compile time since 1/4 of the Ir are used to compute coloration.

 * type_coloring: 17.23%
 * property_coloring: 9.35%

Signed-off-by: Jean Privat <51f8b1fa9b424745378826727452997ee2a7c3d7@pryen.org>

itsWill/nit,jcbrinfo/nit,jcbrinfo/nit,ventilooo/nit,ventilooo/nit,jcbrinfo/nit,ablondin/nit,MehdiAit/nit,colinvidal/nit,jpcaissy/nit,ablondin/nit,jcbrinfo/nit,MehdiAit/nit,jpcaissy/nit,jpcaissy/nit,colinvidal/nit,ventilooo/nit,jpcaissy/nit,MehdiAit/nit,privat/nit,MehdiAit/nit,ventilooo/nit,privat/nit,Freddrickk/nit,jcbrinfo/nit,Freddrickk/nit,ventilooo/nit,Freddrickk/nit,ventilooo/nit,jcbrinfo/nit,MehdiAit/nit,jpcaissy/nit,jcbrinfo/nit,privat/nit,Freddrickk/nit,privat/nit,ablondin/nit,itsWill/nit,Freddrickk/nit,privat/nit,jcbrinfo/nit,Freddrickk/nit,jpcaissy/nit,ablondin/nit,colinvidal/nit,MehdiAit/nit,itsWill/nit,MehdiAit/nit,itsWill/nit,privat/nit,privat/nit,MehdiAit/nit,privat/nit,itsWill/nit,colinvidal/nit,itsWill/nit,ablondin/nit,ablondin/nit,jpcaissy/nit,jcbrinfo/nit,ventilooo/nit,ventilooo/nit,itsWill/nit,colinvidal/nit,itsWill/nit,privat/nit,Freddrickk/nit,privat/nit,itsWill/nit,jpcaissy/nit,colinvidal/nit,MehdiAit/nit,ventilooo/nit,itsWill/nit,ventilooo/nit,colinvidal/nit,MehdiAit/nit,Freddrickk/nit,ablondin/nit,ablondin/nit,jcbrinfo/nit,jcbrinfo/nit,colinvidal/nit