Allow frigates to trade - #1989

Not pushing this to `release` until we iron out #1999 at the very least.
Fixes #1999 - Don't crash on special unloading and loading combinations
Whitespace
Fix inactive_image property for ToggleImageButton
Remove explicit inactive_images

ToggleImageButton currently checks both _bw and _gr suffixes when
looking for the inactive image.
Only set attribute if initing from python

xml-loaded widgets will not yet have an inactive image we could set.
Also initialize another attribute to something useless.
Reindent for less depth
Remove pointless attribute initialization

It is set to something else within a few lines and has no effect here.
Whitespace
Hide minimap widget when ending a game

I just found out about this bug because I was running a higher
resolution. Before the mainmenu's background hid the minimap. :)

Also moved the unsubscription of messages to the top of the `end()`
method, because I noticed a crash when a SpeedChanged message came in
after the minimap instance was gone.
Rename variable to avoid confusion

This is not an icon_path in the tabwidget sense.
Temporarily try to find tabwidget images

Long-term plan is to get rid of _u suffixes and rename the files proper.
Remove `position` attribute from tab widget

Use position_technique carefully crafted to be pixel-identical to old
placement code. Needs to move the show() earlier for position_technique
to be parsed: Tabs are drawn relative to the button positions, which are
not yet set before calling show().
Support ImageButton `path` in tabwidget

Removes explicit 'content/gui/' prefix and '_%s.png' suffix.
This makes the tabinterface a bit more friendly for users.

Our diplomacy tab could need a bit of special care since it does weird
things to the image attributes, but this is good enough for now.
Whitespace, PEP-8
Drop comparison to True

Not necessary in this case, this is a bool after all.
Rename variable, remove assertion, PEP-8

`num` is often used as loop variable in UH and in fact used to be the
loop variable in this method as well before being replaced by `i`.

Since NoneType instances are not likely to implement addChild soon,
it should be safe to drop this as well.
* Drop some unnecessary len() calls

Replaced by enumerate() where feasible.
* Spacing fixes for assertions
Fixes #1835. Residences being affected by disasters shouldn't upgrade.