Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Сам рут по сути не нужен, все папки которые создаются нами и резолвятся относительно него создают полное дерево. То есть да, если рут не существует, то он создастся.