Fix sorting of stages in job details page.
Move `startTime` to the start of SparkContext.

This fixes a rare race-condition where someone could access a UI page
before `SparkContext.startTime` was initialized, causing the UI to
display an incorrect total duration.
Add status field to job details page.
Add pending stages table to job page.
Fix table sorting on all jobs page.

It now sorts based on the time that the scheduler
learns about the job rather than the time that the
first stage begins executing.  This is necessary
because the earliest stage that a job depends on
may not necessarily be executed (e.g. if it lies
behind a shuffle boundary for a shuffle that’s
already been computed, or if some RDD has been
cached, etc.).