Stop Channel from implementing IHandle<Event>

Channel should not be handler.
Make Router multiplex instead of being P2P

Make Router able to multiplex instead of being strictly point-to-point.
This was made super easy by C# delegates/events, much easier than it was
in standard C++!
Added skeletal LazyInitContainer
Make LazyInitContainer register injectors
Made LazyInitContainer use singleton scope