config: Small improvements and many extra classes
This introduces small performance improvements for YamlConfig, plus:
- Extra classes to save in a forked process, and to save only from time to time (with a decorator than can be used elsewhere)
- Support for the with operator
- A config class using AnyDBM (I don't use it in the end, so it's not as well tested as the rest, but should work)
- A config class using SQLite
Both new classes assume a certain hierarchy so they are not usable in all the cases that YamlConfig is usable. DBMConfig may also not allow listing all keys.
WeboobNoAliasDumper could be made default but I didn't want to force changing existing behavior. Unfortunately it's the only solution for now: https://github.com/yaml/pyyaml/issues/103