Dynamic experiments

The pros:

* breaking up the DAQ into separate `Acquisition` chunks improves modularity (and provides all the benefits that go with it)
* thus we can do `experiment.swap(darks, radios)`
* we have some basic acquisition routines

Cons:
* the `argdrop` is boilerplate but I don't know how else to get rid of it for now.

Something to show:

```python
darks = Acquisition("darks", argdrop(acquire_darks, ...))
flats = Acquisition("flats", argdrop(acquire_radiographs ...))
radios = Acquisition("radios", argdrop(acquire_tomogram, ...))

experiment = Experiment([darks, flats, radios], ".")
# Now there is a data structure with all the files including the log file
experiment.run()

# We want to change the acquisition order
experiment.swap(darks, flats)

# This works too
experiment.swap(1, 2)

# Now we acquire stuff in order [flats, radios, darks]
experiment.run()
```

I will provide a nice example once we agree on some reasonable outcome of this. Let's not forget that this is about #56 and some todos:

- [ ] Write more tests
- [ ] Check the docs