Feed Creation: Add a separate extension call for namespace stuff. Change...

... extensions accordingly.

Rationale: The current approach for feed extension is a bit error prone, for example the dc extension currently erases the default namespace of atom feeds. To fix this, I propose to add an *extend_ns* call to extensions that indicates which namespaces should be added to the feed, and to redo the feed extension call a bit (work on the given XML, don't copy, extend & return it).
This will break current extensions, so I fixed the ones that are included.

Other changes:
Entry creation: Entries create their own XML Element, which is put into the feed by the caller.
Mostly done for clarity, the entry stuff is more self-contained then.

Whitespace erasion: I changed the config of my text editor, so it deleted trailing whitespaces. I'm not sure if this right for docstrings, I can amend that if you wish.