main: more robust cleanups on error returns

When we fail initializing the app early enough, like, say, parsing
command line arguments, we blindly tear down structures we haven't
even initialized yet.

The libevent structures in general don't seem too happy when their
destructors are called with NULL, so add the appropriate guards.
Same for our own https structure.
https: consider non-200 status from YouTube as an error

When trying to authorize a Google account that's _not_ linked to a
YouTube account, the API tells us "401 NoLinkedYoutubeAccount".

Consider anything non-200 as a "hard" error and propagate that to
the browser like we would the other ones too.

Of course we could also pass the response status to the regular
->read_data() callbacks and the like, but that would be.. more
involved and this works just as well here.