Split out the context cache from the consensus crate
## What
The context cache is the service in `cuprate-consensus` that caches data from the database, this issue is for splitting it into a separate crate. 

## Why

We should pass in the data needed to verify a tx/block we shouldn't hold the context service in the verifiers. Splitting it into a separate crate makes this clearer.

