Upcoming Core PR16443 makes validation.h #include <txdb.h>, which has
the unwelcome effect of making zmq transitively #include <leveldb/db.h>
which cmake helpfully doesn't make available to it.
turns out zmqpublishnotifier.cpp (the only translation unit requiring
validation.h) needs it only for ReadBlockFrom disk.
This looks like a good place to start to cut things out of
the validation TU which is basically responsible for everything right
now.
This diff moves a few functions related to handling block files into the
(tentatively named) readblockfromdisk.cpp translation unit so that
zmqpublishnotifier.cpp no longer pulls leveldb transitively.