XD-1021,1037,1277,1039 composed stuff

This fixes a handful of issues/enhancements regarding to composed modules:
- undeploy of stream involving a composed module
- ability to pass options to a composed module (previously ignored), with caveat [1]
- defaults correctly handled 
- composed of composed now works, with caveat [2]

Still pending:
- I used underscore as the FQN separator, as the parser currently does not accept dot (can be in other PR, just need to change CompositeModule.OPTION_SEPARATOR)
- Need to add the concept of an "alias" to a module option, and for composed modules, a short alias should be elected if there is no ambiguity (ie "http | filter" accepts expression as an alias to filter_expression, but "filter | transform" does not)
- We still need to expose a unique id for a module inside a stream-like definition so that it can serve as a namespace in composed modules (ie support "filter | filter")

Caveats:
[1] ModuleCommandTests.testComposedModules() fails for me, while it works in the shell
[2] The heuristics for determining the type of a composed module seem to be broken for some cases, which may prevent testing composed of composed, but I did not manage to reproduce.