So yeah, while TorrentRead is not compulsory to use,
right now it'd be pretty inconvenient to not use it
as the hash grouping function is fidgety to get right.
I think group_torrent_hashes() eventually should be
moved elsewhere.
This makes the visitor a little bit more complicated but
it allows client code to fetch raw variants. It is useful when
dealing with arrays and maps, so that client code can decide to
cache the intermediate array or map into a variable and then run
subsequent searches on that variant rather than from the start.
It should make looping a bit less expensive.
Directory names are not supported yet so this only works
if all the torrent files exist, are of the correct size and
are directly located in the working directory