(Bug 177) finished basic /admin/sendmail page

The requested scope of this bug is in three parts: send message, lookup sent
 messages, and manage form messages.  This is only the first of those three
 parts.

This is a convenience form for sending emails to users from registered site
 addresses such as support@dreamwidth.org.  Each "from" address is tied to a
 particular privilege using a new hash in config-local.pl named
 %LJ::SENDMAIL_ACCOUNTS.  The keys of the hash are the email account names
 and the values of the hash are the priv:arg pairs needed to send a message
 with that account.

The original bug spec said to use userlog to record when an email is sent.
 I did that, but because userlog transactions are necessarily keyed to the
 user who took the action and limited in how much additional information they
 can contain, I also added a new global table, siteadmin_email_history, for
 recording the details of each message sent.  Due to the pressure of time,
 the interface for looking up sent emails hasn't been added yet, but the
 information is being added to the database for later querying.
(Bug 177) only give access to users who have siteadmin:sendmail priv
Rename (new) success_ml to DW::Controller->render_success

We put back the original success_ml, which matches error_ml in form

But we now also have a new function DW::Controller->render_success which
has a signature which acts a lot like DW::Controller->render_template

The first argument is the page name (scope) where the success message is
defined -- it will probably match the page name in your
DW::Controller->render_template

This page should define a .success.title and a .success.message

The second argument (optional) is a hashref of any variables in the
.success.message

The third argument (optional) is a list of links in the form of:

  { text_ml => ..., url => ...}
Merge pull request #803 from kareila/release-bug0177-sendmail

(Bug 177) finished basic /admin/sendmail page
[#724] Don't show module jump link on one-column on desktop as well
Merge pull request #804 from afuna/no-module-jump-link-on-desktop

[#724] Don't show module jump link on one-column on desktop as well
[#722] Adjust the small-screen-mode boundary from 60em to 30em

That's approximately 640px at the standard font size
Merge pull request #805 from afuna/adjust-small-screen-boundary-bug-722

[#722] Adjust the small-screen-mode boundary from 60em to 30em
[#723] Reset control strip font size back to absolute 11px
[#722] Only include the meta viewport tag conditionally:

* only if we're using the default stylesheet

* disabled in unconverted layout

The viewport tag with width=device-width, initial-scale=1 is only
suitable for converted layouts. Custom layouts probably don't fit the
bill, and unconverted layouts definitely don't. (they look smooshed)
Merge pull request #806 from afuna/controlstrip-font-size-bug-723

[#723] Reset control strip font size back to absolute 11px
Merge pull request #807 from afuna/meta-viewport-conditional-bug-722

[#722] Only include the meta viewport tag conditionally:
[#789] Abstractia: mobile-friendly

* move column-specific CSS to a media query
Merge pull request #808 from afuna/abstractia-mobile-bug-789

[#789] Abstractia: mobile-friendly

Fixes #789
[#790] Bases: make mobile friendly

* move column-specific CSS to a media query

* unhide #secondary in one-column view (we now only apply position:
  absolute to #primary on multiple columns + desktop, which should fix
  the problem)
Merge pull request #809 from afuna/bases-mobile-bug-790

[#790] Bases: make mobile friendly

Fixes #790
[#791] Blanket: mobile changes

* constrain to 60% only on desktop (don't need to be that narrow on
  mobile)

* turn on the meta viewport tag
Merge pull request #810 from afuna/blanket-mobile-bug-791

[#791] Blanket: mobile changes

Fixes #791
[#792] Brittle: mobile style

* linearize (no sidebar) on small screens

* move the userpic inside the entry instead of outside on smaller
  screens

* enable printing of the meta viewport tag

Fixes #792
[#793] Drifting: mobile style

* only split into two-columns on larger screens

* tweak borders so that they work on both one-column and two-column views

* force #primary (entries) to come above #secondary (the sidebar) in one-column view

* print out the meta viewport tag

Fixes #793