Region Adjacency Graph

## Example Images
![figure_1](https://cloud.githubusercontent.com/assets/3823490/3291718/5ce9b952-f587-11e3-8c29-e2aace6d7794.png)
![figure_2](https://cloud.githubusercontent.com/assets/3823490/3291723/7074b134-f587-11e3-8c73-d28222891a21.png)


@vighneshbirodkar Typically, in hierarchical merging, the minimum edge is merged first. Then the next lowest. And so forth. Regarding the 2 edges API, the problem is that the second one may not exist. I imagine function writers will have to unpack the edges anyway...

@stefanv Yes, but it's just the one neighbor: the function decides per edge what to do. So, `src_neighbor`?