Ioc

When complete, will resolves issue #3

* [x] remove ContainerFactory class
* [x] introduce an IoC container to components
* [x] refactor composition 
* [x] refactor visitors-mapping sources
* [x] create friendly API to add/replace components
* [x] fix XML comments