Label matching routine

This PR adds a routine that takes two labelled images and finds the intersection of the labelled regions. It can then relabel the images so that overlapping regions share the same label. It can also, optionally, in the case of multiple overlaps remove all but the largest overlapping label from the image.

This is still rather WIP, I need to be told what to do with test data and the tests still need a *lot* of love!
Notes to self: type def k, make this only for one array.