SPARK-1830 Deploy failover, Make Persistence engine and LeaderAgent Pluggable

Why does this need to accept a `ClassTag`?  Is this so that we can allocate unboxed primitive arrays?