haserl: check for required i18n uci variables (gargoyle.global.fallback_lang & language); use included die messages to pipe feedback to browser; remove unused exe suffix in makefile
ensure change_menu_language has something to change to
about.sh, overview.sh, plugins,sh & themes.sh: transition to i18n form

That completes the standard package/gargoyle pages (not including updates since last checkout). Only thing not done are:
- SVG graphs
- /www/data/timezones.txt
- a few strings in gargoyle_header_footer
plugin-gargoyle-i18n: transition to i18n form
move ObjLen() into common.js
add 2 new executable i18n scripts:

/usr/bin/i18n - takes a (js) page & key, provides a translation value. Used in forthcoming openvpn openvpn_upload_client.sh which has strings set in a shell environment pushed to javascript

/usr/bin/i18n-menu - takes a fully formed uci page (gargoyle.display.status_openvpn_connections) and provides a translation value. Used when a feature is activated & a menu item becomes active.
plugin-gargoyle-openvpn: transition to i18n form; NOTE: only a cursory testing
…and now the translation pages for plugin-gargoyle-openvpn
use the new i18n-menu script to get i18n menu name; provide Spanish translation
This commit is:
git fetch upstream master
git checkout upstream/master package/plugin-gargoyle-tor/Makefile
git checkout upstream/master package/plugin-gargoyle-tor/files/www/js/tor.js
git checkout upstream/master package/plugin-gargoyle-tor/files/www/tor.sh
plugin-gargoyle-tor: transition to i18n form; revist login.sh because it contains a 'hook' to some tor info

Note: as I didn't activate Tor, it isn't tested beyond the basics of page loading & selection options
logread, ping, usb printer, webshell & wifi schedule plugins: transition to i18n form
fix errors in translation files
add page to initial haserl translate token - making it very easy to localize the template
minor fixes on the road to localization
localize.py to localize i18n pages (not incorporated into build script yet)
prevent localize.py searching directories it won't be translating
localize.py: fix issue with 2 different jsobj.props on 1 line (like hosts.js)
wrong copy&paste of property in hosts.js