Save, reload and replay of in-memory chain for ForkedChain
A segment of chain being processed by ForkedChain is not written to the database if the `base` is not moved forward. Finalized blocks that still in memory will be lost if the client restarted.

Find  a way to serialize this in-memory stuff to database. But care must be taken to allow block import via rlp and era file still works.

The serialized stuff also self purging, only need stuff is in database. expired stuff should gone automatically.

If the base is newer or the block number of base is greater than smallest finalized block number, the loader can decide to replay only relevant finalized blocks or discard the entire serialized things.

What about segment from `Finalized Head` to `Canonical Head`? They will not serialized and not saved to database.
Next time the client load the serialized data from database, the `Canonical Head` is equal to `Finalized Head`.

What if in memory chain `Finalized Head` is equals to `Base Head`, we can remove the serialized stuff from database or still serialized it but no replay will occur by the loader.