extract MessageCache function to IMessageCache
rename MessageCache to MemoryMessageCache
add PassthroughMessageCache to do performance compare
add test