Reworked terminal_interface.

Architectural change: cleaner separation between generic code, unix-specific and windows-specific (in two varieties) code

Behavioural change: windows now either inputs/outputs ascii (without ctypes) or full unicode (with ctypes). Yes, no more chcp crap!

https://mediawiki.org/wiki/Special:Code/pywikipedia/10043
Fixes to breakers terminal_interface_unix in r10043.

Note to self: when fixing bugs, don't forget to commit them.



https://mediawiki.org/wiki/Special:Code/pywikipedia/10044
Updated keyword substitution for userinterfaces\

https://mediawiki.org/wiki/Special:Code/pywikipedia/10045
- Consistent use of self.encoding fixes output on unix (without colors) and input on windows (when config.encoding != 'utf-8')
- Removed double readline from win32 _raw_input

https://mediawiki.org/wiki/Special:Code/pywikipedia/10046
1. Use the configuration value of the encoding for transliteration purposes, even if it is overwritten in a subclass
2. Allow multi-step transliteration (x transliterates to y, which however cannot be shown either, then use the transliteration of y as the transliteration for x)
3. Add transliteration for Lao alphabet

https://mediawiki.org/wiki/Special:Code/pywikipedia/10047
Reverted my own change in usage of encodings - we should put that advise of using a different font for the command prompt in Windows somewhere prominent!

https://mediawiki.org/wiki/Special:Code/pywikipedia/10048
Update noreferences.py for zh.wikipedia

Patch by YFdyh000 <yfdyh000@users.sourceforge.net>
Reference: pywikipedia-Patches-3511436


https://mediawiki.org/wiki/Special:Code/pywikipedia/10049
Adding new :lez: language

https://mediawiki.org/wiki/Special:Code/pywikipedia/10050
Update namespaces for kv (see bug#3512044)

https://mediawiki.org/wiki/Special:Code/pywikipedia/10051
Adding namespaces for lezwiki (equal to Russian at the moment)

https://mediawiki.org/wiki/Special:Code/pywikipedia/10052
Adding sl.wikiversity namespaces

https://mediawiki.org/wiki/Special:Code/pywikipedia/10053
Adding two new Russian namespaces

https://mediawiki.org/wiki/Special:Code/pywikipedia/10054
update language_by_size

https://mediawiki.org/wiki/Special:Code/pywikipedia/10055
Follow-up to r10051 

https://mediawiki.org/wiki/Special:Code/pywikipedia/10057
update namespace aliases for lez-wiki

https://mediawiki.org/wiki/Special:Code/pywikipedia/10058
update namespace alias for sl-wikiversity, follow up for r10053

https://mediawiki.org/wiki/Special:Code/pywikipedia/10059
namespace aliases for or-wiktionary

https://mediawiki.org/wiki/Special:Code/pywikipedia/10060
remove duplicate or obsolete entries; sort dictionary

https://mediawiki.org/wiki/Special:Code/pywikipedia/10061
endsort parameter for category.articles() needed e.g. by featured.py

https://mediawiki.org/wiki/Special:Code/pywikipedia/10062
featured.py need to identify the "#" sortkey (bug #3511935)

https://mediawiki.org/wiki/Special:Code/pywikipedia/10063