Add programmatic API

Detail are in the doc. 

@arikon @scf2k 
насчет `reject` согласен. А вот насчет возвращения результата в строке - это плохо, больше вероятность ошибок при использовании: очепятался где-то и хер его знает почему не работает. Тут или объект с булеаном или тогда нужны какие-то именованные константы (что-то типа enum'а)