Convert all end-of-lines in Python sources to Unix style

Previously, both DOS (CRLF) and Unix (LF) style were used, sometimes
even in the same file.

See issue: https://github.com/tweecode/twine/issues/118
Removed whitespace at end of lines

This avoids nasty red bars in "git diff".
Cleaned up "#!" declarations

Removed them from modules that aren't designed to be executed.
I didn't do a very deep analysis, just common sense and looking for
the existence of a '__name__ == "__main__"' check in the module.

Ask for "python2" as interpreter instead of just "python", see PEP 394
for details.
  http://www.python.org/dev/peps/pep-0394/

Set executable flag on the modules that kept "#!".
Put module and class comments in docstrings

Docstrings can be used to generate API documentation, while comments
can only be read in the source itself.
Removed space before argument list on class or function definition

Most Python projects don't put spaces there and even within Twine
some definitions had it and some didn't.
twee: The Header.factory() method now takes a 3rd argument

This fixes Twee after the changes in e8454bd1 broke it.
twee: Preserve order of passages

In Twee sources or manually crafted HTML the passages will often be
in an order that is meaningful to the author. Since it is a small
effort to preserve that order, it is worth doing so rather than using
the dictionary key order which is arbitrary.
Altered charspan CSS classes

* Previously, charspans had the classes "char" and a second one
representing the char contents - for instance, "v" for lowercase v. But,
having a single-character classname for charspans is causing some
collisions with certain Firefox extensions. Now, the character is stored
in a data-char attribute, so CSS can still potentially select it.
* Line breaks are now excluded from charspan generation, for the same
reason that they are no longer converted to <br>s.