DuckDuckGo: make the structure easier to maintain.

- Group up data in more human-friendly ways.
- Allow for generation of text and html responses from a base format, in
  most cases
- Move (almost) all processing outside the handler.

This also alphabetizes the keyword list which may have been a mistake.
The keywords don't reflect everything (given aliases) and maybe the old
structure made it easier for people to know where to put things
by looking for similar subjects.

Includes some improvements suggested by @crazedpsyc and @moollaza on
previous revisions.