This differential implements API that enables to monitor and capture backup logs. At this point logs are unencrypted, without attachments and persisted on database thread. Future differentials will improve those deficiencies. This diff doesn't break the app since log capture is not actually called yet.
How does log capture work?
1. We attach session to database connection and session starts to accumulate logs.
2. Each time we call `captureLogs` we read logs from session, store them in a file identified by `logID` and increment `logsCount`.This file is truncated and overwritten each time but it is desirable since reading from session doesn't clear logs.
3. If `logsCount` is higher than some constant we return to `SQLiteQueryExecutor` information that it should increment `logID` to start new file. Additionally we delete session and attach it again to clear its content. Otherwise `logID 3` file would have all changes that already are in `logID 2` file.