Tracking Issue for Chain manager
### About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter.

### What

The chain manager, which is the task in `cuprated` that handles incoming blocks from peers or the syncer.

### Steps

- [x] Chain syncer
- [x] Handle new blocks 
    - [x] From the peer channel
    - [x] From the syncer channel
- [ ] Handle chain re-orgs


### Related

I started the syncer here: https://github.com/Cuprate/cuprate/pull/142

