Intra/inter-gene distance function -- WIP

Here's an implementation of the function discussed this morning .. Nearly finished but not quite there yet. A couple of items..

* I've done the hacky sq_to_dist voodoo so the distance matrix is kept condensed to preserve memory, and the condensed form makes for nicer output.
* In hindsight intra/inter are terrible choices of words, I'll rename these in the next commit so the code is a little easier to read :)
* It currently takes the gene labels as a 1D 'membership' vector.. is this suitable? If we're inputting a MongoDB collection item, this can be cast into the right form easily enough..
Yeah, I would suggest making it a full test, *and* you could do the following:

 - set numpy random state.
 - create gaussian feature vectors with different means for different genes
 - run your function. Run it once on your machine to check the expected output, then use that and `np.testing.allclose` to verify the output in testing.