Add functionality of reconstructing a persisted UI from SparkContext

With this commit, any reconstruct SparkUI resides on default port of 14040 onwards.
Logged events are posted separately from live events, such that the live SparkListeners
are not affected.

This commit also fixes a few JSON de/serialization bugs.