Initial commit of adding histogram functionality to the DoubleRDDFunctions.
Add tests for the Java implementation.
CR feedback
Remove extranious type definitions from inside of tests
Remove extranious type declerations
Replace magic lengths with constants in PySpark.

Write the length of the accumulators section up-front rather
than terminating it with a negative length.  I find this
easier to read.
Remove Pickle-wrapping of Java objects in PySpark.

If we support custom serializers, the Python
worker will know what type of input to expect,
so we won't need to wrap Tuple2 and Strings into
pickled tuples and strings.
Add graphite sink for metrics

This adds a metrics sink for graphite.  The sink must
be configured with the host and port of a graphite node
and optionally may be configured with a prefix that will
be prepended to all metrics that are sent to graphite.
Add custom serializer support to PySpark.

For now, this only adds MarshalSerializer, but it lays the groundwork
for other supporting custom serializers.  Many of these mechanisms
can also be used to support deserialization of different data formats
sent by Java, such as data encoded by MsgPack.

This also fixes a bug in SparkContext.union().
Send PySpark commands as bytes insetad of strings.
FramedSerializer: _dumps => dumps, _loads => loads.
correct number of tasks in ExecutorsUI
rename "a" to "statusId"
use HashSet.empty[Long] instead of Seq[Long]
Misc style changes in the 'yarn' package.
Cleanup GraphiteSink.scala based on feedback

* Reorder imports according to the style guide
* Consistently use propertyToOption in all places
XORShift RNG with unit tests and benchmark
To run unit test, start SBT console and type:
compile
test-only org.apache.spark.util.XORShiftRandomSuite
To run benchmark, type:
project core
console
Once the Scala console starts, type:
org.apache.spark.util.XORShiftRandom.benchmark(100000000)
Updates to reflect pull request code review
Remove explicit boxing
Add spaces