Initial work on module overhaul

The idea is to give freedom to module so they can define bindings the way they want. This way it is way Dado becomes way more extensible.