Persist lastReported on HarvestSettings

Persist lastReported using Android's SharedPreferences in
HarvestSettings. Remove lastReported from HarvestReporter
and use HarvestSettings interface instead.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
Check if device is connected to network before report

Use ConnectivityManager to check if the device is connected
to the network. If not connected then, do not report.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
Avoid consective attemps when something goes wrong

Add a new lastAttempt timestamp to control failed consecutives
attempts, thus avoiding unncessary work.

ie., the server is not working and clients fail to report. In
this case the clients should wait until the next attempt.

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
Increase canReport verbosity for each condition

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>
Update TODO

Signed-off-by: Martin Abente Lahaye <tch@sugarlabs.org>