CertificateProof is a proof that a transaction certs existed at a given
epoch and hence can be executed. There are two types of proofs: one that is
proven by inclusion in a checkpoint and one that is proven by quorum
signature.
An ExecutableTransaction is a wrapper of a transaction with a
CertificateProof that indicates there existed a valid certificate for this
transaction, and hence it can be executed locally. This is an abstraction
data structure to cover both the case where the transaction is certified or
checkpointed when we schedule it for execution.