Walkers take generators

Now the lengthy `write_sequence` is gone and one can use the walkers like this:
```python
# as a coroutine
producer(walker.write())

# write from a normal list
data = [foo, bar]
walker.write(data)
```