Optimized PNG encoding
Removed unnecessary backslashes at end of lines

If there is an open (), {} or [] pair, Python will continue the
statement onto the next line, no need for a backslash then.
Look for ifconfig in /sbin

In most Linux distros, ifconfig won't be in the $PATH when running as
an ordinary user.
Deduplicated code in getkeys()
Don't treat the encryption type radio buttons as a keyboard

The only code that was shared with the keyboard implementation was
getkeys(), but we don't need support for a grid of keys when we have
a single row of radio buttons.

Also do wrap-around instead of clamping on cursor movement through
these radio buttons.
Store keyboard layout in tuple-of-tuples instead of dictionary

What we want to know is the key label for a given row and column,
so make sure that we can easily index the data structure for the
keyboard layout by row and column.

Also do wrap-around instead of clamping on cursor movement through
the keys on the keyboard.
Replaced getkeys() by a global dictionary named keyLayouts

This ensures the keyboard layout data structures are initialized only
once; they are fetched quite often.

Simplified nextKeyboard() and moved it next to keyLayouts, since the
cycle order must be in sync with the supported layouts.

Removed the code mapping 'WEP-40' and 'WEP-128' to the 'wep' layout,
since 'WEP-40' and 'WEP-128' are never used as layout names.
Fixed shape of START and SELECT (they were reversed)

Also removed some duplication from the drawing code.