Handle random 400 Error from YouTube

When fetching earnings a list of earnings, YouTube randomly returns
400 Error with "Invalid query. Query did not conform to the expectations"
as reported at https://code.google.com/p/gdata-issues/issues/detail?id=4889

A working solution is to simply retry the same query and magically it works.
Ensure channel.earning is 0 when no money was made

Because of another weird behavior of YouTube API, if "earnings" is the
only metric requested for a specific day, and a channel did not make any
money that day, then YouTube does not return anything.

If instead the "estimatedMinutesWatched" is also requested, then the value
for the "earnings" metric is correctly returned as:

- 0 if the channel did not make any money
- nil if the estimated earnings are not available