Spark-742: TaskMetrics should not employ per-record timing.

This patch does three things:

1. Makes TimedIterator a trait with two implementations (one a no-op)
2. Makes the default behavior to use the no-op implementation
3. Removes DelegateBlockFetchTracker. This is just cleanup, but it seems like
   the triat doesn't really reduce complexity in any way.

In the future we can add other implementations, e.g. ones which perform sampling.
Modified version of the fix which just removes all per-record tracking.
Using full package name for util
Merge pull request #585 from pwendell/listener-perf

[Fix SPARK-742] Task Metrics should not employ per-record timing by default