Add ExchangeSupervisorActor

**Description** Add ExchangeSupervisorActor without the handling of the failure cases, which will be handled by a new actor which is out of scope for this PR
**Testing** Tests added, tests pass
**Coverage**

- ExchangeSupervisorActor: 100%
- InitializedExchangeSupervisorActor: 93.40%
- DefaultHandshakeActor: 100%
- InitializedHandshake: 100%
I think complex actions not related with member initialization in the class body are weird and hard to read. Perhaps it would be better to move this block to a `start()` function and call it from the initial `Receive` object above.