Handle errors on merging via github api better

Several improvements to the error handling of the lander-merge-result job.
Returns non-zero error code on failure and prints errors to stderr. Also
copes with a weird api issue where the pr is reported as not mergable but
lacks the 'merged' key in the response.
Support requeuing proposals after a merge failure

Look for reports that the merge failed when seeing if a pull request is
mergeable, and obey merge directives following it. The previous scheme
required all users to be admins to remove the 'merge request accepted'
messages from the bot to get it to retry.
Merge pull request #14 from bz2/mergable_requeue

Support requeuing proposals after a merge failure

Look for reports that the merge failed when seeing if a pull request is
mergeable, and obey merge directives following it. The previous scheme
required all users to be admins to remove the 'merge request accepted'
messages from the bot to get it to retry.
Merge pull request #13 from bz2/error_return_code

Handle errors on merging via github api better

Several improvements to the error handling of the lander-merge-result job.
Returns non-zero error code on failure and prints errors to stderr. Also
copes with a weird api issue where the pr is reported as not mergable but
lacks the 'merged' key in the response.
Add PullRequestInfo with extra details

Pass more details about the pull request through to jenkins. Refactor with
new PullRequestInfo type constructed from the json api response to simplify
the passing around of details about pull requests.