* Add Waku network backend
Add Waku as the first supported network backend and rework API.
In particular, the network message now depends on the underlying
network backend so that it can properly reflects specificities
of the protocol.
Another choice could have been to hardwire domain-specific actions
in the network message type (e.g. send block, send message, ...)
but was discarded in favor of a more general network service.
* address review comments
* add debug impl
* add Serialize/Deserialize to network settings
* add waku functionalities
* add a little bit of documentation
* Added storage main files and trait
* Pipe skeleton for StorageService
* Implement running StorageService
* Add sled module
* Refactor error reporting
* Missing logging todo
* Implement mock storage
* Add channel for auto-converting types on channel replies
* Simplify StorageBackend trait
* Refactor mock backend and use HashMap
* Remove sled for now
* Refactor serialization scheme
* Add storage traits docs
* Make transaction a custom trait. This way we can return stuff from the transactions themselves if needed.