Port Python keyboard detector to C

This is a straightforward port to C of the keyboard detector code
from Ubuntu's installer; with the exception of "Cancel" and "Add" buttons
in the dialog box. When the detection heuristic has finished, the "Add"
button becomes active.

(Roddy, Philip)

[endlessm/eos-shell#3425]
Incorporate keyboard detection heuristic

Hooks up the dialog box ported in the previous commit to the keyboard
layout selection page. If the user clicks "Add" after the keyboard has
been guessed, it will be added to the list of keyboards on the page, and
automatically selected so that the "Next" button becomes active. If the
guessed layout was already in the list, it will still be selected.

(Roddy, Philip)

[endlessm/eos-shell#3425]
Remove Python files

These have been ported to C and are not needed anymore.

[endlessm/eos-shell#3425]
Add files with new strings to POTFILES.in

[endlessm/eos-shell#3425]
Refactor read_step() into process_line()

The code for processing each line of the keyboard tree file moves into
its own function, in order to avoid mistakes with having to free the
line at each exit point of the loop.

This requires moving another variable into the KeyboardDetector struct
(marked private in a comment.)

[endlessm/eos-shell#3425]
Merge pull request #71 from endlessm/shell/3425

Automatic keyboard detection
Infrastructure for keyboard detection by language

This allows simpler detection trees that only need to distinguish
among the likely keyboards for a user's language.

Using gettext locale rules, search for the best available match
in order from most desirable to least desirable, and fall back to
the full detection tree (default locale "C") if no better match.

To add support for a specific language, create the appropriate
directory in gnome-initial-setup/pages/keyboard/detector-trees
with a tweaked version of pc105.tree, and add the file path to
gnome-initial-setup/pages/keyboard/keyboard.gresource.xml.

[endlessm/eos-shell#4213]
Keyboard detection trees for Spanish and Portuguese

If the user's language is Spanish or Portuguese,
assume the user is using one of the following keyboards:
br, es, latam, pt, or us.
This greatly simplifies the detection logic.
(If the user has something different, he/she can still
manually select a specific layout.)

For now, we use the same trees for Spanish and Portuguese,
under the assumption that there may be some cross-pollination
of Spanish and Portuguese speakers and keyboards throughout
Latin America.

The maps are generated via the keymaptree script provided
with the source of console-setup-1.70ubuntu10, by modifying
keymaptree.use to include only the relevant layouts.

[endlessm/eos-shell#4213]
Remove detection of us:intl keyboard

The step asking a user if the umlaut key (¨) is present
is very confusing, as it can easily be mistaken for the
double quotation marks (").  Many users who have a US keyboard
would thus incorrectly be detected as us:intl.  Besides, most
if not all users who want the us:intl layout would be using a
standard US keyboard and the umlaut would not be physically
visible on the keyboard.  Better to just let those users who
want the international mapping for the US keyboard to manually
select the appropriate layout.

[endlessm/eos-shell#4213]