(bug 4062) Initial OAuth implementation

This currently does not allow anyone to use OAuth to auth anywhere
but allows the OAuth token process to work.
(bug 4062) Fix protocol version related code
(bug 4062) Fix various concerns
(bug 4062) Refactor code to remove indent
(bug 4062) Missed explicit protocol_version
(Bug 5323) Disable parsing of external entities in synsuck and the importer

* creates the DW::XML::RSS/DW::XML::Parser modules to replace their
  XML::* equivalents. Works basically the same, just with a tighter
  configuration
Always use LJ::challenge_check_login
Merge branch '_always-use-challenge_check_login' into release-1.20

* _always-use-challenge_check_login:
  Always use LJ::challenge_check_login
Merge branch '_xml-entity-sec-bug5323' into release-1.20

* _xml-entity-sec-bug5323:
  (Bug 5323) Disable parsing of external entities in synsuck and the importer
Fix error
Merge pull request #733 from afuna/syntax-error-approve

Fix error
Fix whitespace
Fix nested comments not showing up sometimes

We were popping from the original comments array... so in
one-column-split, after processing the page summary module, there were
no more comment replies to be printed. Oops. Fixed by working on a copy
of the original array.
Merge pull request #734 from afuna/nested-comments-in-one-column-split

Fix nested comments not showing up sometimes
Hush various warnings
Merge pull request #735 from afuna/hush-various-warnings

Hush various warnings
Better error message when cleaning out purged members

Instead of saying "removed: (list of all roles)" which may or may not be
true, just say that they were removed from the community
Don't try to convert "0000-00-00" to a time

Occasionally shows up in the logs as "Month '-1' out of range 0..11 at
cgi-bin/LJ/Time.pm line 84"
[#740] Fix POSTing of changeemail

* rely on $r->did_post, instead of a submit mode
* if on an https page, submit to https
Merge pull request #740 from afuna/changeemail-post-bug-740

Fix "change email" function