Parallelize libdistance with openMP

There are a lot of trivially parallel calculations in some of the clustering algorithms (especially kcenters) so I used openMP to take advantage of all available cores during these functions. While the observed scaling isn't perfect you can get a 2x speedup with fewer than 4 cores depending on the dataset.

Here's the results for a small completely random dataset:
![image](https://cloud.githubusercontent.com/assets/883130/5256192/52504912-797a-11e4-8270-c3158bfb7276.png)

I think we should `#ifdef _OPENMP` guard these pragmas.