Hierarchical Merging

# Examples

#### `thresh=40`
![40](https://cloud.githubusercontent.com/assets/3823490/3928338/85888a96-2408-11e4-8c5b-e2b3d05bf693.png)

#### `thresh=40`
![40_2](https://cloud.githubusercontent.com/assets/3823490/3928340/8c746aaa-2408-11e4-823c-943fa45b167f.png)

#### `thresh=40`
![ball_40](https://cloud.githubusercontent.com/assets/3823490/3928345/9ac0be24-2408-11e4-8f1a-3fe758ed3023.png)

#### `thresh=60`
![60](https://cloud.githubusercontent.com/assets/3823490/3928354/aafcdbc4-2408-11e4-9701-c2471166a1f5.png)

#### `thresh=60`
![car_60](https://cloud.githubusercontent.com/assets/3823490/3928363/c02292b4-2408-11e4-8a0d-e4983adc51b1.png)






@vighneshbirodkar that statement is entirely ludicrous. =P You keep references to heap_item, which is this 4-element list. Your reference to the flag is: edge -> dict -> "heap_item" -> element 3. See your invalidate function, which replaces this data value with `False`, a simple bool.