Anbangx/reduce message communicate

@Nan-Zhang @JavierJia @jakebiesinger 

In order to reduce the overhead of serialization and deserialization from Message communication, I add a byte flag to only read and write the fields we need. Please have a look at it. Thanks!

@JavierJia Please reprofile the pathmerge from this branch. Let's check if it has some performance optimization.

BTW, when I send pull request, can I only compare with a particular commit instead of our main branch?