Same comment as above, do we really want to use ModuleDefinition here.

Moreover, as discussed with @markfisher I think there is a distinction between 
1) the 'static' definition of a module (currently ModuleDefinition) which tells us what a module can, where is (xml) definition is, how it is made up of other modules in case of composed module, etc
2) the 'instanciated' view of a module, one that is used in a stream (what we have here)