Force newline on stdout when Ctrl-C is used during prompts

This is so the next shell prompt isn't displayed on the same line where
the interrupted hub prompt is.

This is irrelevant in zsh, which ensures that the prompt always starts
on its own line.
Handle errors about unique constraints in validation exceptions

Previously, these errors would not be shown to the user, which would
lead to some very uninformative HTTP error messages.
Rescue HTTP exceptions during `ci-status` command

This is so that a user-friendly message is shown instead of a useless
stack trace.
Respect `note_url`, not `app.url` field in Authorizations API

Technically, they're going to be the same values for OAuth tokens
created via the API, but since we write to `note_url` field it makes
sense to use the same field to read the value back, for consistency.
Fix reusing old OAuth tokens stored in Authorizations API

For people who are using hub for a longer time now, hub has stored an OAuth
token in Authorizations API with a `note_url` value that is now outdated
(e.g. "http://defunkt.io/hub/"). The newer `oauth_app_url` doesn't match
that, so the token is not reused. Hub tries to create a new OAuth token
with a `note` that says "hub" which fails with a 422 because it already
exists.

This fixes reusing old OAuth tokens even if the `note_url` doesn't match
anymore. Any key with `note` that says "hub" will get reused.

Fixes #496