leave channel constructor and goroutining to callers

Just an idea: what if `Entries.Keys` and friends would not return a channel, but take one as an argument? That allows the caller to set the buffering, so a `cact`-like tool can perform reading and writing of corpora in parallel. (Untested proof of concept attached.)