cashew: add local byte counters

The data provided by the carrier usage API isn't always updated in real
time after a cellular device has connected to the network, and carriers
would prefer if we didn't make frequent API requests.

So, instead of making periodic API requests and relying on the returned
data to be fresh, we hit the API once on connect to set a baseline and
then track usage relative to this baseline by looking at local network
interface counters maintained by the system.

This change should be transparent to our clients, who trust us to provide
the best info possible regardless of its source.

BUG=chromium-os:7770
TEST=unit tests, manual testing on device

Change-Id: Ib88dee5ee52d0e781f853356a3d68da714627bc8

Review URL: http://codereview.chromium.org/5180003
17 files changed