Use only spaces for indentation

Python 3 does not like mixing tabs and spaces.
Clean up dead, redundant, and unused code

* Unused parameters, methods and attributes
* Redundant strip() calls extracting names and values from “options”
* “pos” is always 0 or -1, which is less than or equal to the length of any
  string
* Content decoding seems to be done with internal wrappers around the parsers
* No point checking again for newline in HTTP client after verifying a
  newline was added to the buffer
* stat() result index 9 is actually ST_CTIME; but it appears “mtime” was
  actually intended
* Can’t get past parse_image_jpeg.__init__() without setting “tfname”
* __getattr__() normally passed a single attribute name without any full
  stops (.)
“BookmarksParser” module doesn’t seem to be used
Eliminate duplication between “cookielib” and “ht_time” modules
Reader.LoginDialog unused and appears to duplicate the Authenticate module
Remove backwards compatibility hacks for old libraries and Python versions
Remove broken-looking and unneeded time.timezone hack

What happens if the hours being subtracted are on different days?
Remove code that used the “rexec” and “Bastion” modules

These modules were apparently broken since Python 2.2 or 2.3 and no longer
exist in Python 3.

* Most of the SafeTkinter module usage was commented out
Remove support for passing attributes as a list object
Avoid using "exec" to import modules named at runtime
Avoid using “exec” to add global variables
Explicitly close files rather than relying on garbage collection

Avoids Python 3.2’s ResourceWarning.
Miscellaneous name changes anticipating Python 3

* Inspired using “2to3”
* functools.reduce, io.StringIO new names
* cPickle removed
Cannot use wildcard “import *” in function scope in Python 3
Use urlparse() host and port parsing if possible

* urlparse() result attributes added in Python 2.5
* Scheme and host are automatically lowercased
Replace deprecated “string” module function calls

* Methods on string objects introduced in Python 2.0
* strip() before int() etc is redundant
* Use isalpha() etc instead of string.letters etc in many cases
* Use partition() or split() where appropriate instead of slicing via find()
  and index()
* Avoid map() by translating strings before splitting
Merge branch 'master' (early part) into HEAD

Conflicts:
	src/html/table.py
	src/utils/grailutil.py
Convert back-tick repr() syntax

* Prefer format() for formatting numbers as strings
* Use “%r” format where appropriate, introduced in Python 2.0

Inspired using “2to3”.
Built-in types over “types” module; use isinstance() for checking them

* Built-in types removed from the module in Python 3
* Built-in factories became classes in Python 2.2
* Use abstract classes from “numbers” and “collections” modules where they
  seem appropriate, introduced in Python 2.6