Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
я бы тут оставил `configData.projectRoot = path.dirname(filePath);`
а внизу тогда else можно убрать