WIP: Initial heuristic for determining automatic compaction

(`balooctl compact` always forces)
- If it won't save at least 200MB, don't bother
- Compact if database is 50% empty, or wasting more than 2GB

These numbers are based on my system, which IMO is on the large size in
terms of user file count (~3M) but not huge, where common used index space
is ~950MB. I believe larger systems can see large gains (a few gigabytes)
per compaction operation, but should probably not do that more than once
a day or sth.
1 job for !46 with feature/compact-database in 3 minutes and 18 seconds (queued for 189 minutes and 2 seconds)
latest merge request