Add the `substring-collect-documents' program

This program takes a list of file names, and produces and aggregate file where
documents are separated by NUL bytes.  The resulting file can be used with
`substring-frequencies' to find shared features of documents.

Signed-off-by: Morten Hustveit <morten.hustveit@gmail.com>
substring-frequencies: Add the --cover option

This option is used to find a set of substrings completely covering the input
documents, starting with the most highly representative strings.  The algorithm
may be improved in the feature by updating the representativeness of remaining
substrings as more documents are being covered.

We are not really tring to solve the Set Covering Problem, which has no
regard for a second set used to score subsets.

Signed-off-by: Morten Hustveit <morten.hustveit@gmail.com>