Add a preview/confirmation menu; major special page internal restructuring

Restructuring:
* Use one Status object, stored as $this->status.
* $this->state attempts to say what phase we're in.
* Moved spamlist sanity checks (existence, redirection) into their own function.
* Requests go through one expandable callback function.
* Basic data verification is its own function, and is done before anything else.
* Killed all non-configuration globals.
* Added own submit buttons rather than using HTMLForm's.

Preview menu:
* Rather than immediately submitting, require the user to preview the message.
* On the preview menu, the user can modify the form values before submitting.
* The user has the option to re-preview before submitting.
* The preview is wrapped in a <fieldset> to distingiush it from the form.

Change-Id: If0a5abf5803d1ec91542e5adb0fa1a9888634acb