[Truffle] Hide better ModuleChain and provide ancestor iterators.

* So we have less comparisons with IncludedModule,
  clearer expectations on the capabilities of the receiver
  and avoid having to call getActualModule ourselves.
[Truffle] assignableTo should only be defined for classes.
[Truffle] Simplify Module#<=>, no need for another slower specialization.
[Truffle] Remove last misusages of ModuleChain.
[Truffle] Make ModuleChain and IncludedModule as private as Java allows.