[FEAT] Rewritten generate_user_files and Py3 support

This is a general overhaul of generate_user_files. It uses the pywikibot
package so it can use the config to get the base directory and directly
use inputChoice, input, output and error.

This also uses the Family instances and does not interpret the source
code on it's own. The languages are now sorted by 'languages_by_size'
with any other language added afterwards sorted alphabetically.

It now also requires a non empty username (and doesn't default to
'UnnamedBot'). The default values when adding additional projects are
those of the main. The default language of a project which only has one
(e.g. commons) is that language (and not 'en'). It'll require a
confirmation when the language is not known (and there are languages
known).

All usernames are now by design together. Previously they could
have been separated by other config values in the extended mode.

It also supports now Python 3.

Change-Id: I5d8209d2357a6ebe90a55766a8ff27e953647738
Merge "[FEAT] Rewritten generate_user_files and Py3 support"