Symfony\Console implementation

This is a last of BC changes I planed. 
I inspired by composer logic, so if you know composer, it will help you understand logic of this code.

More info to come in release notes.

**Feel free to do code review or suggest most important tests.**