Add lots of docs

First step towards #114
There is no `program_handle` here any more.