Correctly process the situation when squashfs file isn't there
Made error message more verbose (as suggested by Clem)
Select default timezone based on IP address

Closes #25
Added option for automatic login

The user configuration screen now has a checkbox for autologin.
If checked, post installation sed scripts are run, covering all
the most used display managers.

Closes #18
Get current xkb layout more reliably
Query GeoIP City database for time zone as well
Parse xkb rules only once using xml.etree.ElementTree
Slightly more concise assign_keyboard_* callbacks
Defer keyboard preview generation for smoother scrolling
Merge pull request #37 from kernc/autologin

Added option for automatic login
Merge pull request #39 from kernc/default_timezone

Select default timezone based on IP address
Merge pull request #42 from kernc/kbd_switch_delay

Annoying delay when switching keyboard layout
Merge pull request #31 from monsta/patch-4

Correctly process the situation when squashfs file isn't there
Better debug and exception handling

With this commit:
* `--debug` switch now sets Python's `__debug__ = True` (and
  the lack of it enables `-OO` optimizations),
* ˙sys.excepthook˙ (default exception handler) is replaced by a
  function that first prints a normal traceback, and then issues
  Python debugger if `__debug__` is `True`, so the programmer can
  interactively inspect their error,
* a couple of really pointless try-except blocks,

  ```
  try:
      ...
  except Exception, e:
      print e
  ```
  have been unindented, with potential programmers' errors handled
  by said excepthook. Additionally, the unindented blocks hold the
  following changes:
  * stripped of all trailing whitespace,
  * a couple of labels have been slightly improved by a word or so,
  * gtk.gdk.threads_enter/leave() calls have been replaced by
    gtk.gdk.lock context guard.