ConditionNode is now having a more complete constructor for accepting condition, trueSuccessor, falseSuccessor and successor. Accompanying unit tests.

Also changed constructors to accept a param object instead of spelling out the arguments. This makes it harder for dependency injection but I expect the dependencies to be injected from a definition document and use a factory to create the nodes in the processor so in the end, the dependency injection wouldn't depend on the name of the arguments in this case.