New driver interface register/save/restore
This MR implements the new driver interface and checkpoint allocation as already discussed offline.
I will have to run again some tests to verify that I didn't introduce any bugs while refactoring for the merge request, but in general this should work.
I open this MR so you can already have a look.