[master] Migrate logs from older versions

Despite the fact that we can read older log versions at the runtime, this PR will add an extra step to the upgrade process which will be responsible to migrate older logs and order log entries. This is necessary because we must be able to read commit entries from the log files in the correct order. Indeed, entries can be mixed up in older log files but they _must_ be order by transaction id in 2.2.

Integration tests will be added in a separate PR, since it will require some kind of tool for "mixing up" entries in older log files.
`PhysicalWritableLogChannel#close()` doesn't close the channel, which is weird since its counterpart `ReadAheadLogChannel#close()` does. Anyways, this makes the file handle still open so the cleanup fails later on a Windows OS. This should be fixed, either by having `PhysicalWritableLogChannel#close()` close the channel, or having this method close it explicitly after the call to `PhysicalWritableLogChannel#close()`. Dunno which is the best way to go about it.