notebooks: backend serializer
Created by: novoselrok
This PR adds basic types for notebooks in preparation for backend persistence. Additionally, it prepares functions for marshaling and unmarshaling notebook blocks. We'll need those functions to serialize blocks when saving them in the database.