Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
В CLI и GUI будет дефолт. Мне кажется, одно другому не противоречит.

GUI и CLI это конкретный способ использования программного API. Следующим шагом можно пробросить кастомизацию и в эти, более высокого уровня, интерфейсы.