Subtype improvements

During the work with the covariance, some bugs with `is_subtype` where identified.

The PR tries to improve the code and fixes those bugs.
It also simplifies the code in the formal types and propose a new `lookup_fixed` method on `MType`.
Pour les VT, tu expliques ce que veut dire `fixed` mais pas pour les FT, est-ce la même chose, différent, quel est le rapport avec la borne.

Je pense que ça mérite encore un peu d'éclaircissement