Finished implementing the TorrentBytesIO / SingleFileIO / MultiFileIO
the logic for the reading / writing is a bit complex so may be come back
to it later