Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Здесь в любом случае что-то с `paths` надо сделать, или занулить, или дать дефолт. C занулением менее понятно, ИМХО.