To prevent accidental double-propose when going offline for a short period.
DB holds a mapping equivalent to a HashMap<parent_hash, Vec<(round number, proposal)>>.
When proposing at a round k on top of a given parent hash, check if we already proposed at this round and don't create a new one. Otherwise, place the new proposal in the mapping and commit to disk.
When importing a block on top of parent_hash, clear all recorded proposals based on it as they are no longer relevant.