first implementation of localization using gettext
gettext localization at the most basic level. Not all strings are translatable yet, and plurals are not handled. This also does not auto-generate or install the localization files (e.g. in setup.py). But this should be merged now since it touches so much of the code to add the
_() function. So maintaining this in a MR will mean lots of painful rebasing.
This also explicitly sets the minimum Python version to 3.4 and includes some other minor cleanups.