Allow preparation and finishing of experiments

I am trying some things with experiments and wanted to attach logging. It turned out to be quite cumbersome at the moment. So I added some functionality to experiments which allows us to execute code both *before* and *after* every run, like this:
```python
def log_stuff():
    ...

experiment.after = log_stuff
```
@matze Is that too weird to do?