Refactor JournalSegmentReader
We have almost-duplicated code in {Disk,Mapped}JournalSegmentReader,
which looks very similar to what DiskJournalSegmentWriter revolves
around.
JournalSegmentReader revolves around tracking current position and
interpreting bytes read. Its specializations provide the means for
access.
JIRA: CONTROLLER-2109
Change-Id: I80b78cde5baf6b222d888e635dd5c854331f261a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit
7f3eb922fce09a366143387ee71bf6f10b698473)