utf-8 encode all data being sent to hipchat.

Summary:
We urlencode the post data, but urlencode doesn't take arbitrary
unicode; it needs utf-8 (the hipchat api expects utf-8 as well).  So
we convert.

As part of testing, I refactored the way we mock hipchat to get a more
accurate test.  So now all the test outputs include the api key as
well.

Test Plan:
tests/alertlib_test.py
tests/timeout_test.py

Reviewers: alpert, chris

Reviewed By: chris

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