Modules now interpret themselves and DeclarativeModule creation.

Modules read and construct their own bindings. This allow the construction of any kind of module (declarative, imperative, remote...).

Module became an interface and DeclarativeModule was created.