Add JSON Serializability for all SparkListenerEvent's

This also involves a clean-up in the way these events are structured. The existing way
in which these events are defined maintains a lot of extraneous information. To avoid
serializing the whole tree of RDD dependencies, for instance, this commit cherry-picks
only the relevant fields. However, this means sacrificing JobLogger's functionality of
tracing the entire RDD tree.

Additionally, this commit also involves minor formatting and naming clean-ups within
the scope of the above changes.