(Bug 4504) : Initial commit of barebones DW::XPostProtocol::Twitter class
(Bug 4504) : New OAuth module. Doesn't actually do anything yet.
(Bug 4504) : added public_posts_only method. Unfinished.
(Bug 4504) : Created start_oauth function

* Starts the OAuth process: requests a request token from twitter,
  returns the URL to redirect to to authorize.

* oauthtest controller is temporary for testing purposes.
(Bug 4504) : Added redirect to Twitter for OAuth
(Bug 4504) : DW::External::Account->public_posts_only now works.
(Bug 4504) : Added DW::External::Account->uses_oauth method.
(Bug 4504) : start_oauth now saves the request token to extacct options.
(Bug 4504) : Added handling of OAuth callback

* Created DW::External::OAuth::oauth_callback function

* Created bare-bones controller for
     /manage/externalaccounts/oauthcallback

OAuth now works, though only specifically for Twitter. Lacks a UI.
(Bug 4504) : Just added a FIXME note ;-)
(Bug 4504) : Changed how spaces are handled between bits of the tweet
text.
(Bug 4504) : Initial commit of twitter settings page

Most of the controller is not written yet.
Added a line to upgrading/en.dat for the default tweet prefix.
(Bug 4504) : Always give opportunity to re-authorize account

This is in case auth has broken somehow and we haven't noticed. User can
always opt to do OAuth again.
(Bug 4504) : Changed get_net_twitter to _get_net_twitter as internal fn
(Bug 4504) : Added set_username, is_authorized & set_is_authorized to
DW::External::Account

* set_username is needed because Twitter accounts can change their usernames
without us losing access.

* added setter & getter for is_authorized attribute for oauth accounts.
(Bug 4504) : Added a verify_auth method to the Twitter XPostProtocol.

Checks that auth credentials are valid, and if so returns the account's
username. If not valid, sets is_authorized to false.
(Bug 4504) : Form displays correctly for an existing account

Shows authorized status and username correctly if these have changed on
Twitter.
(Bug 4504) : Linked everything up!

Replaced the oauthtest controller with BeginOAuth.

The Authorize link on twittersettings now starts oauth, and successfully
finishing oauth now takes us to the twittersettings page.
(Bug 4504) : Moved the OAuth callback

moved from /manage/externalaccounts/oauthcallback
to /manage/externalaccounts/twittersettings.

Means that errors can be handled nicely on the settings form, but
will involve a bit more faff to generalise the OAuth process away from
just Twitter.
(Bug 4504) : Added success or faliure messages after an OAuth attempt.