New single ConcurrentDictionary-based bus

Much more productive than previous solution but still far from optimal.
Unit tests also smell.