standard Naive Bayes classifier
Refactored NaiveBayes

* Minimized shuffle output with mapPartitions.
* Reduced RDD actions from 3 to 1.
Let reduceByKey to take care of local combine

Also refactored some heavy FP code to improve readability and reduce memory footprint.
Reformatted some lines commented by Matei
Added Apache license header to NaiveBayesSuite
Response to Reynold's comments
Response to comments from Reynold, Ameet and Evan

* Arguments renamed according to Ameet's suggestion
* Using DoubleMatrix instead of Array[Double] in computation
* Removed arguments C (kinds of label) and D (dimension of feature vector) from NaiveBayes.train()
* Replaced reduceByKey with foldByKey to avoid modifying original input data
Aggregated all sample points to driver without any shuffle
Merge pull request #292 from soulmachine/naive-bayes

standard Naive Bayes classifier

Has implemented the standard Naive Bayes classifier. This is an updated version of #288, which is closed because of misoperations.
Fall back to zero-arg constructor for Serializer initialization if there is no constructor that accepts SparkConf.
This maintains backward compatibility with older serializers implemented by users.
Merge pull request #335 from rxin/ser

Fall back to zero-arg constructor for Serializer initialization if there is no constructor that accepts SparkConf.

This maintains backward compatibility with older serializers implemented by users.