Guess timezone by IP, else by country from IP, else by language

Fixes problem introduced in #39.
Merge pull request #43 from kernc/default_timezone2

Guess timezone by IP, else by country from IP, else by language
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.
Print locals() before entering pdb
HACK: Fix gettext line so that installer runs