Move guitranslations out of i18n and into horizons.gui

The idea is to make i18n as small as possible, it should only find
languages and switch between them and provide a translation interface
for other parts of the code.
Update object translations when LanguageChanged message arrives

I'd like to move this out of i18n completely, but I don't know where to
put it yet.
Merge i18n.utils into i18n
Fix multiple bugs in the recent i18n module changes
Update paths in create_pot.sh
Use lazy translation for building's name/tooltip

objecttranslations.py is now only used for the translation machinery,
but not in the game itself.
Fix some problems with parsing yaml and __str__

Changes __str__ to __unicode__ because `self.name` holds the translated
entity name (i.e. is not guaranteed to be ASCII only). Ideally a
representation like this would always yield the English (untranslated)
name for debugging purposes, but this at least avoids simply crashing.

Looking for a KeyError no longer makes sense now that we don't actually
check any dictionary for its keys. Thus moving the sanity checks into
existing (and now probably misnamed) method. At least it's documented...
Do not attempt to translate attributes of hidden widgets

There is no way of accessing them in a meaningful way, and the
translation will be updated as the widget gets shown again.

Fixes #2117 Changing language with opened production tab crashes.