New setConstruct

The setConstruct now takes the method as a parameter, avoiding that
the programmer can create a constructor method with a name different
from the module. This avoids the issue where the user can call the
constructor on an already instantiated class and makes it harder to
make mistakes while creating modules for the language.