Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Я бы заодно добавил в API возможность указывать своего резолвера пути