Crates depend on `cargo` feature unification
## Environment
All.

## Bug
Some crates have `Cargo.toml`s that do not pull in dependencies with the correct features.

They can get away with it in CI as all/most used features are usually enabled and [`cargo`'s feature unification](https://doc.rust-lang.org/cargo/reference/features.html#feature-unification).

For example, `cuprate-{blockchain,txpool}`. Some other crates outside `storage/` probably rely on the feature unification as well. 

## Expected behavior
Crates to build as single crates with any feature combination.

## Steps to reproduce
The following does not work due to lots of feature related errors:
```bash
cargo build --package cuprate-blockchain
```