Rewrite google_code_reports to work for uservoice instead.

Summary:
I cleaned up the code a lot, and made the following semantic changes:

1) We now use creation-time to say "when" a bug is, rather than
last-modified time.  I think this is more accurate, though I could be
wrong.

2) I never send a hipchat message if num_new_bugs is 0.  I think this
was just a bug in the code before.

Test Plan:
Ran
   ./uservoice_reports.py
on my local machine (after setting up the appropriate secrets).  It
completed without error and gave a correct-looking pickle file.  Then
I ran it again, and it again completed without error.

I didn't try to simulate having lots of failures, but hopefully that
part continues to work unchanged!

Reviewers: marcia, jascha

Subscribers: alpert, chris

Differential Revision: http://phabricator.khanacademy.org/D9653
Rewrite google_code_reports to work for uservoice instead.

Summary:
I cleaned up the code a lot, and made the following semantic changes:

1) We now use creation-time to say "when" a bug is, rather than
last-modified time.  I think this is more accurate, though I could be
wrong.

2) I never send a hipchat message if num_new_bugs is 0.  I think this
was just a bug in the code before.

Make these files *actually* executable...

Test Plan:
Ran
   ./uservoice_reports.py
on my local machine (after setting up the appropriate secrets).  It
completed without error and gave a correct-looking pickle file.  Then
I ran it again, and it again completed without error.

I didn't try to simulate having lots of failures, but hopefully that
part continues to work unchanged!

Ran
   ./uservoice_reports.py
without error.

Reviewers: jascha, marcia

Reviewed By: marcia

Subscribers: alpert, chris

Differential Revision: http://phabricator.khanacademy.org/D9653