Add a gateway SparkListener to simplify event logging

Instead of having each SparkListener log an independent set of events, centralize event
logging to avoid differentiating events across UI's and thus duplicating logged events.
Also rename the "fromDisk" parameter to "live".

TODO: Storage page currently still relies on the previous SparkContext and is not
rendering correctly.