The interface needed for the deduplication routines to run. To use the deduplication code,
define a struct that implements these methods. This struct must be given by value to the FileDeduper
struct on creation.
Find valid partition points in a file where we can
chunk in parallel. Returns the start points of each partition
(i.e. file offset 0 is always the first entry, and file_size
is never in the result).
Note that reader position is modified and not restored.