Anbangx/implement bubble merge with search

Hi,

This is the new version of Bubble Merge - Bubble Merge With Search.
 * Ex.      B - C - D - E - F - G  
 *       A - B - H - I ----------- G
 * From this example, CDEF and HI are formed bubble and B and G are two end points of this bubble.
 * For this operator,
 *     1. it starts BFSearching from start point B, and then it will collect all the valid paths(BCDEFG and BHIG) to B
 *     2. compare all the valid paths with its own startHeads and pick one path which is enough similar so that we have confidence to say this path is the correct path and others are noice
 *     3. keep this similar path and merge the path nodes in B
 *     4. delete all path nodes and the corresponding edges with these path nodes 

This operator needs two more FIXMES: 
1. need to add statistical method to get top 10%(or some reasonable number) startHeads as begin points. This requires to use StatisticCounter. We still wait for Yingyi's response for our StatisticCounter. Right, @jakebiesinger ?
2. how to compare the similarity.

@jakebiesinger  Have a look at it. Once the StatisticCounter can be used properly, two more FIXMEs will be finished soon.