Cached message map reflection result for every dispatcher type;
Added Reserve method to BehaviorList to preallocate a certain size of the list.
Cached command targets (behaviors) instead of enumerating them every time in CommandRunner.Run().