Provide a way for jobs to estimate network traffic.

The system would like better insight into the shape/size of network
traffic that jobs will be performing.  For example, the system may
choose to delay jobs with large network usage estimates when the
device has a poor network connection, in order to save battery.

This also paves the way for more interesting optimizations, such as
allowing small jobs to use surplus metered network quota to improve
the overall user experience.

For now, we use these estimates to perform a simple sanity check to
skip jobs that have no possible chance of finishing within the
10-minute job timeout on a given network.  (For example, a job
trying to upload 10MB over a 128Kbps EDGE network is a terrible
idea.)

Test: verified via DownloadManager
Bug: 67040695, 64133169
Change-Id: I9210168b6bda0f0364975a5c7ea25d953a096767
8 files changed