[ink] Ink backend remake
To sum up various discussions from the chat channel:
We need to change the ink backend component so that it doesn't timeout, but instead uses INK's callbacks, or even better listen to events from INK (is that supported?).
That would let us avoid keeping an open connection that'll time out.
It would also make sense to leverage the server's SSE events to notify the frontend for changes in status (is uploading, response with converted document).
This would allow the frontend to avoid having an open promise for something that might take 5 minutes.
Keeping an open promise also has other problems:
(a) If I reload the page, the conversion is done in vain, as it will never end up in the fragment and
(b) If I make another update on a fragment while the promise is open, the fragment's rev has changed, which means I have to always make sure in the frontend that before writing I re-get the rev for that fragment.
SSE events would also maintain the uploading status while navigating through the app (which is not possible now, as it's in the individual chapter's state -- referring to editoria here).
This also relates to the issue of making the xsweet recipe run much faster. If there is a gitlab issue for that, let's link it in here.