[r21640]GrampsLocale: Reduce circular imports

Lets one import grampslocale directly in a test script:
>>> from gramps.gen.utils.grampslocale import GrampsLocale
>>> import os
>>> gl = GrampsLocale(lang='fr_FR.UTF-8', localedir=os.path.join('build', 'mo'))
>>> tr = gl.get_translation().gettext
>>> tr("List of known family trees in your database path\n")
u'Liste des arbres familiaux connus dans votre chemin de base de donn\xe9es\n'

git-svn-id: svn+ssh://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40@21647 4ae1f11a-8b86-4847-b8af-ab372f36d1fd
[r21644]GrampsLocale: Suppress double printing of log messages

Grampsapp.py sets a global handler, so install one only during the first
init and remove it when done.

git-svn-id: svn+ssh://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40@21648 4ae1f11a-8b86-4847-b8af-ab372f36d1fd
[r21645]Plugins: Limit addon translators

Only get an addon translator if the plugin has a locale directory
Prevents pointless warnings, esp. when the translations are in the
main Gramps message file.

git-svn-id: svn+ssh://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40@21649 4ae1f11a-8b86-4847-b8af-ab372f36d1fd
[r21646]GrampsLocale: Code cleanup

And make sure that setting lang on the GrampsLocale constructor
overrides the languages from the first instance.

git-svn-id: svn+ssh://svn.code.sf.net/p/gramps/code/branches/maintenance/gramps40@21650 4ae1f11a-8b86-4847-b8af-ab372f36d1fd