* Use CID values for tetraplets and `canon` vectors.
* Rename `cid_store` to `value_store`
It is consistent with the new `tetraplet_store` and `canon_store`
fields.
* Make canon data more typeful
The `CanonResult` doesn't take a JSON value anymore that is further
deserialized elsewhere, but is a struct that has all data deserialized.
* Typeful `CID` type
The `CID` type has a phantom type paramter defining its value's type.
* Group cid stores and trackers
Group cid stores into `CidInfo` struct, and trackers into `ExecutionCidState` struct.