Better debug and exception handling

With this commit:
* `--debug` switch now turns on Python's `__debug__` constant (the lack of `--debug` turns on Python's `-OO` switch),
* `sys.excepthook` (default exception handler) is replaced by a
  function that prints a traceback as well as issues a Python
  debugger if `__debug__` is true, so the programmer can opt to interactively
  inspect the error,
* a couple of really pointless try-except blocks,

  ```python
  try:
      ...
  except Exception, e:
      print e
  ```
  are now unindented (with potential programmers' errors handled by said excepthook).