emailer lib: implement send($d, FALSE) as expected by email test method

FALSE was the default value, so passing it didn't achieve anything.
What the test method was _trying_ to do was force the email to bypass
the queue, so we could get useful debugging information.  (For testing the
queue there's already an "insert test email" button, which passes TRUE).

Treat $queue_override as a tristate: null by default, but can be set to
either TRUE or FALSE.
email test results: not a flash message, so remove the close button

The message doesn't appear at the top of the page like the other
close-able messages.  It's associated with a heading and a debug section,
so it doesn't make sense to close it on its own - it looks really silly if
you do.
template: remove magic behaviour of set('debug', ...)

Technically this is documented, but we're not using it anywhere.  If you
uses any of these names:

    debug|active_theme|default_theme|current_view|layout|parse_views|data|
    blocks|message|theme_paths|site_path|orig_view_path|ci

they will set class properties of Template, instead of adding a variable to
the view data.  The name "data" in particular seems ready to cause many
man-hours of debugging fun.

There's no alternative setter for $debug, so I just made it public.
Remember that without this change, *all* the properties of the Template
class are effectively public.
emailer lib: process_emails(): respect enable_debug() and fix return value

There's not much point testing for CI_Session because it will always exist.
It's loaded by the users auth library, which is loaded by MY_Controller.

OTOH, it may well make sense to respect enable_debug().  This will help
make the debug code a bit more consistent in future.  I.e. we can use a
single PHP variable to hold debug messages, so we don't need to abuse the
session for it.  Being consistent about enable_debug() would make that
easier to explain and understand.

Also fix the return value to indicate success or failure.  It's what the
function comment says, and you shouldn't have to enable debugging just to
tell whether the function succeeded or not.
emailer lib: fix return value of send() and unify debugging messages

The function comment, users module, and create method of the email
settings controller think it returns boolean, but it doesn't.
Returning boolean would make good sense here.  Most callers won't
use the extra debug information - you already have to do extra
work to enable the debugging messages.  And for those that do use them,
grabbing them from a global variable is no big hardship.

(PHP does not do threading - or signal handling - and process_emails()
cannot be called recursively, so a "global variable" is not so bad).

Let's fix send() so it matches the documentation, and so the naive callers
who believed it will now notice when send() fails.

Also fix resend_activation(), which was trying to display the debug
messages, but would actually have errored out trying to display the value
of the private $debug flag.
emailer preview: view as html, instead of source code

The emails are sent as HTML, but if you use the "preview" (e.g. on an
activation email after forcing $queue_emails = TRUE), it was forcing
you to read the source code.

This could also be misleading.  Say you have a message that _looks_ like
plain text, but is actually HTML.  It could be invalid HTML due to a naked
'&' character, but you wouldn't realize that.
emailer lib: don't send html under Content-Type: text/plain !