Merge pull request #2 from rithram/master

Data utilities and relevant tests added
Added basic cmake file, changed divergences to use new Point class, wrote basic tests for divergences
Fixed up bregman ball class and wrote tests, fixed KL divergence so it works for unnormalized distributions
Merge remote-tracking branch 'upstream/master'
Bregman kmeans implemented + (minor) ifdef flags name change

The k-means partitioning function is put in a class and can be used
not only for 2-means clustering, but should work for any value of k.
Moreover, this initializes the kmeans with a Gonzalez analogue to
Bregman clustering. So we can even use this to partition data without
doing kmeans -- just using the Gonzalez algorithm to partition the
data (if we want faster tree construction). This behavior can be
achieved by setting the number of kmeans iteration to 0.

Some simple tests are written to test this class even though this
might need a code review + more testing.
Minor bug in kmeans fixed + more tests added for kmeans
BBTree construction implemented and tests written.

Also indentation modified on most of the files to have consistent
indentation. Some function prototypes added or modified for the
divergences and the ball bound to allow for the tree construction.