Alternative rollup implementation for the rust branch

This is an alternative implementation of #46.
I think providing a sane default when the configuration value does not exist is good. (That's what `cfg.get(key, default_value)` does.) So I think we might even want to replace almost all the occurrences of `cfg[key]` to `cfg.get(key, default_value)`.

However, it is just a matter of taste. You could also prefer explicit failing if the configuration value is not provided. Which way do you prefer?