Added input size and read time.

This commit adds a new metric in TaskMetrics to record
the input size and read time when data is read from the BlockManager,
from HDFS, or from a parallelized collection, and displays this
information in the UI.
Made JobLogger more robust by improving log output.

Send exceptions to logError() rather than printing
a stack trace, and fail gracefully if JobLogger doesn't
start up correctly.
Added logging for serialization / deserialization.

Serialization when data is read/written using Hadoop is not
captured.
Change to ec2 script to pull in TPC-DS stuff
Read /proc filesystem to log CPU/Network/Disk utilization.

Logging can be enabled by setting the spark.procParser.enabled
configuration variable, and the logging interval can be configured
with spark.procParser.logIntervalMillis.
Add task locality to job logger information