Introduce Full and Rolling mode
This MR allows a node to run with a pruned history by introducing two history modes: Full (the new default mode) and Rolling. The Archive history mode corresponds to the current mode which keeps everything.
The node history is cleaned when setting a new checkpoint :
- On Full mode, blocks below the new checkpoint are pruned and the node is still able to obtain some block data, such as the block header, under the new checkpoint.
- On Rolling mode, only a minimal required portion of the blocks (max_op_ttl blocks under the new checkpoint) are kept and pruned. All blocks under this limit are deleted.
More info can be found in this post: https://blog.nomadic-labs.com/introducing-snapshots-and-history-modes-for-the-tezos-node.html
The snapshot part will be the subject of a separate MR.