README.md: Add more docs
doc: More updates, note atomic status, flesh out tradeoffs
treepkgdiff: Don't create hawkey cache by default

Since we're only quering the database once (and at least
one of the locations is going to be read-only), don't
create the cache.

Noted while just reading the code while working on something else.
treecompose: Hoist rpmdb processing into function

In preparation for future work.
postprocess: Clean up rpmdb detritus

These lock and dbenv files are created by RPM when it accesses the
database read-write, but we only want read-only.  Sadly that turns out
to be very, very hard to plumb through all the layers in
hawkey/libsolv etc.

So let's just forcibily remove them after postprocessing.
treecompose: Replace shell callout for package caching with builtin C

This is taking us closer to deeper integration in the treecompose side
with RPM instead of forking out to things.

It works except...we end up with the dreaded __db.001, .dbenv.lock
files =/ Best option would be to teach RPM how to open a database
really read-only.  Failing that, could use the immutable bit?