Lots of StreamingKMeans and overall improvements

- numMapClusters was not being set correctly: at the end nearly all points were being grouped in the same cluster
- added new testMapperVsLocal test to compare the different StreamingKMeans versions and assert they're roughly the same
- factored out common searcher initialization code into a separate file StreamingKMeansUtilsMR
- implemented multiple restarts of BallKMeans in the reducer and added configuration options
- minimal validation added when setting the StreamingKMeansDriver parameters from code (not just when initializing from the command line)
- minor changes to get examples working again