rearrange usage forms in man page to one form per mode
clarify behaviour of -i and -n with -r in man page
clarify -d output format in man page
towards PEP-8 compliance
correct tests for non-zero exit
remove -l option with -n

Reasons:

- it was different (listing all sources) from the -l options of other
  modes (listing all targets)

- it was not particularly useful
require at least one source argument (like cp and mv)
add more tests
don't show backtrace for normal errors

Normal errors are expected in normal usage, e.g. file named on command
line not found.
more test driver options
add high-level performance counters to tests
lazily calculate digests in index

Reduces number of file reads, especially when using -c. See test
--stats.
inject extra assertions while testing
defer creating digest generators until required
embed -l logic into index search function
fix weird action at a distance by empty files with -d

This fix is only for exposition as the routine will be rewritten soon.
express single-item directory handling by -n in terms of node properties
Node.flattened is the same for all kinds of Node
handle -f as a sources transform, not a match filter
move main dedup logic into separate functions by mode