added cst child iterator proxy class

one problem that needs investigating. when I run examples/cst_node_child_iterator.x on a text file I get the following output: 

```
sct3 id = 0
sct3 id = 53056659
sct3 id = 57638418
sct3 id = 57638489
.
.
sada id = 0
sada id = 52428802
sada id = 53056661
sada id = 57638420
sada id = 57638491
.
.
.
```

for the following code:

```
    cst_t cst;
    construct(cst, argv[1], 1);

    auto root = cst.root();

    for (auto& child: cst.children(root)) {
        std::cout << "sct3 id = " << cst.id(child) << std::endl;
    }

    csts_t csts;
    construct(csts, argv[1], 1);
    auto roots = csts.root();
    for (auto child: csts.children(roots)) {
        std::cout << "sada id = " << csts.id(child) << std::endl;
    }
```

is it correct that the root node of both cst representations has a child with id 0?