(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
(bug 5191) can make entries with slug URLs sticky

Previously, you could only use a ditemid or a URL with ditemid to set
a sticky entry; putting in a URL with a slug would lead to an error
message.

I modified sub sticky_entry in cgi-bin/LJ/User.pm so that it would accept
ditemids, URLs with ditemids, and URLs with slugs. sticky_entry still
validates the entry and uses its ditemid to set the sticky property.

Testing:
Used the free individual account test_free on my 'hack

Strings that set the corresponding entry as sticky:
* "http://test-free.quartzpebble.hack.dreamwidth.net/1202.html"
* "http://test-free.quartzpebble.hack.dreamwidth.net/2014/03/25/slugbug.html" (public entry)
* "http://test-free.quartzpebble.hack.dreamwidth.net/2014/03/24/friendly-slug.html" (access-locked entry)
* "http://test-free.quartzpebble.hack.dreamwidth.net/2014/03/25/private-slug.html" (private entry)
* "test-free.quartzpebble.hack.dreamwidth.net/2014/03/25/private-slug.html"
* "test-free.quartzpebble.hack.dreamwidth.net/2014/03/21/private-slug.html" <-- note date doesn't matter
* setting "" or " " still removes the current sticky entry

Strings that resulted in an error message ("Invalid Dreamwidth entry ID or URL entered."):
* "slugbug"
* "private-slug"
* ";ouasenouth"
* '!@$%(*#&%#"@'
* "http://test-free.quartzpebble.hack.dreamwidth.net/2014/03/25/private slug.html"
* "http://test-free.quartzpebble.hack.dreamwidth.net/2014/03/25/private-slug"
Accessibility fix: screened comment link is now more descriptive.
using non-capturing groups for slug-finding regex
changed widget.location.fn.state.inline from "state" to "state/province/territory"; changed global ID of text string
Merge pull request #660 from fhocutt/bug658github-screenedlandingpage

Issue #658 patch: updating landing page for screened comments
Merge pull request #692 from fhocutt/bug668-states-regions-territories

Bug 668: changed widget.location.fn.state.inline to "state/province/territory"
Merge pull request #657 from fhocutt/bug5191-slug-stickyentry

(bug 5191) can make entries with slug URLs sticky
Issue #667: Add ted.com as an embed source

Adds ted.com as an embed source. Fixes issue #667.
Merge pull request #695 from hotlevel4/bug667/addtedembed

Issue #667: Add ted.com as an embed source

Fixes #667
Remove references to Bugzilla

Replace any such references with references to GitHub, as appropriate.
Leave "dw-bugzilla@" email addresses alone.
Remove last bugs.dwscoalition.org references

Fixes #663. Both the references here removed were links to further docs
of what had been done, rather than notices about outstanding bugs, in
any case.
Actually fixes #663

Add a temporary explanatory note about the broken link to the CLA, and
what to do about it.
Change names of updates strings

Avoid later trouble in this way.  Simply append "2" in two places, in
each of two files, to fix commit before last.
(Issue #691) Hide 'track thread' icon from free users

Checks whether a user can track threads before displaying tracking icon.