ignore .bak files

.bak files are [optionally] automatically generated by notepad++
We might switch off this option, once we have confidence and more
experience with git.
add LocaleStrings and adjust the css to 2 column

Later LocaleStrings will replace messy locale code in basehandler.
Also have the css left justify - right justify the language display
names.
But first we add LocaleStrings and test.
add todo
reorder css

for some reason 'import has to be at start
then new stuff at the end
rename local to foreign
clean up locale code

1) 'app_lang' in config is not needed. Instead we the first element of
'locales' is the default language. If there is no 1st element then the
default is 'en'.
i18n is now disabled whenever 'locales' is none or has less than 2
elements. (previously case of 1 element was unclear)
The idea of using a null locale when i18n is disabled is removed - there
is always a locale. There has to be a default.
2) move LocaleStrings to i18n module.
3) replace BaseHandler.locale member (holding the current locale as a
tag) with BaseHandler.localeStrings (holding a LocaleStrings)
4) remove redundant code
tidy up locale code

path_for_language is ill-conceived: reg exp is not needed for processing
the query string.
And its not clear why we need to pass back the query string anyway.
tidy up flash message code

1 rename add_message() to flash()
2 reorder parameters
3 remove superfluous local message assignments
4 regularise all formatting with %s syntax
factor out log-visits to logVisit()
error in flash refactor
1 Replace get_territory_from_ip(rh) code with getRequestLocation(rh,
'Country') - following  coto's commit 73e4837d  but refactoring
get_country_code(r) to getRequestLocation.
2 Refactor set_locale() using sub-function getlocale()
3 generally tidy up file