Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Тоже самое, плюс не уверен что это нужно. Не помню, чтобы кто-то просил свою диффалку когда-либо, все хотят просто новых фич к существующей.