Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
Может возвращать объект?
```
{ success: true/false, data: 'some-data' }
```
Ну или вообще `resolve/reject`