bug10449: a dying owning controller makes Tor exit immediately

If you want a slow shutdown, send SIGNAL SHUTDOWN.

(Why not just have the default be SIGNAL QUIT?  Because this case
should only happen when an owning controller has crashed, and a
crashed controller won't be able to give the user any "tor is
shutting down" feedback, and so the user gets confused for a while.
See bug 10449 for more info)
Include instructions on generating geoip files.

Implements #10924.
pass our compiler -fasynchronous-unwind-tables by default

This should make more platforms (in particular, ones with compilers
where -fomit-frame-pointer is on by default but table generation
isn't) support backtrace generation.  Thanks to cypherpunks for this
one.

Fixes bug 11047; bugfix on 0.2.5.2-alpha.
Threadproof our log_backtrace implementation

It's possible for two threads to hit assertion failures at the same
time.  If that happens, let's keep them from stomping on the same
cb_buf field.

Fixes bug 11048; bugfix on 0.2.5.2-alpha. Reported by "cypherpunks".
Merge remote-tracking branch 'public/feature9777_024_squashed' into maint-0.2.4
Merge remote-tracking branch 'origin/maint-0.2.4'
Merge branch 'bug11047'
Download MaxMind's geoip file over https.

If the cert turns out to be invalid or if wget is otherwise unable to
verify it, it's going to return an error and not download the file for us.

Spotted by nickm.
Fall back to registered country if necessary.

When extracting geoip and geoip6 files from MaxMind's GeoLite2 Country
database, we only look at country->iso_code which is the two-character ISO
3166-1 country code of the country where MaxMind believes the end user is
located.

But if MaxMind thinks a range belongs to anonymous proxies, they don't put
anything there.  Hence, we omit those ranges and resolve them all to '??'.
That's not what we want.

What we should do is first try country->iso_code, and if there's no such
key, try registered_country->iso_code which is the country in which the
ISP has registered the IP address.

In short: let's fill all A1 entries with what ARIN et. al think.
Fix geoip by falling back to registered countries.

See 1d2179bc900f1646a5491b65294e78b175e70056 in master for details.

"""
Fall back to registered country if necessary.

When extracting geoip and geoip6 files from MaxMind's GeoLite2 Country
database, we only look at country->iso_code which is the two-character ISO
3166-1 country code of the country where MaxMind believes the end user is
located.

But if MaxMind thinks a range belongs to anonymous proxies, they don't put
anything there.  Hence, we omit those ranges and resolve them all to '??'.
That's not what we want.

What we should do is first try country->iso_code, and if there's no such
key, try registered_country->iso_code which is the country in which the
ISP has registered the IP address.

In short: let's fill all A1 entries with what ARIN et. al think.
"""
Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4
Merge remote-tracking branch 'origin/maint-0.2.4'
Merge remote-tracking branch 'karsten/geoip2regcountry'
Merge remote-tracking branch 'public/bug11048'
Trivial comment fix.
Merge remote-tracking branch 'public/no_itime_queue' into maint-0.2.4
Merge remote-tracking branch 'origin/maint-0.2.4'
Merge remote-tracking branch 'public/bug10449'