This refactors the transaction workaround with "zone transactions" and abstracts them in a mixin. Then it just uses this mixin in the HiveDatabase and the sqflite_box and also applies them on indexedDB to fix transactions on web.