Super init call

Current uses of explicit and implicit `super` in constructors are not checked.

1. this series add required static verification (in `typing` and `auto_super_int`) on the super init call (and remove two TODO).
2. the correct argument passing is implemented in the engines for the super init calls
3. assertions are added in engines to check that the number of arguments matches the number of parameters
4. tests are also provided (or updated)

This series is required to fix the current implementation so that the implementation of the new style constructors can go on.