Add mediator pattern

[re mediator]
Merge branch 'composite'
Delete empty file (Mediator.cpp), refactoring of few files

[re mediator]
Merge branch 'mediator'