------------------
- Drop Python 2.7 and 3.6 support, add 3.8.
- Remove buildout support.
- Support for nested flushing. In complex use cases it can happen that during
serialization of an object, a query is made to look up another object. That
in turn causes a flush, resulting in a flush inside a flush. The `flush()`
method did not expect that behavior and failed if the inner flush would
flush objects that the outer flush had already handled.