Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Смотри, ты пишешь скрипт в котором лежит кастомный резолвер. Он, например, вместо подпапок вычисляеть хэш от сьюта,  стейта и браузера и складывает их плоским списком. После того как он это сделает, `CLI` и `gui` на проекте станут бесполезными, потому что у них дефолт.

>GUI и CLI это конкретный способ использования программного API. 
Я не совсем соглашусь. И CLI, и GUI и публичное API – это все интерфейсы взаимодействия с инструментом и они должны быть взаимозаменияемыми.