Move SparkContext accumulator methods to Accumulators.scala

This commit moves the SparkContext `accumulator` and `accumulable` methods and the `AccumulableParam` implicits into mixin traits that are defined inside of the `Accumulators.scala` file.  I think that this improves readability by grouping together all accumulator-related code in the same file; it also helps to reduce the bloat of `SparkContext.scala`.

From a user-facing perspective, nothing has changed.