extract Transaction->QuoteHeader method

Code that is adding "On <date> <person> wrote:" in front of
quoted context is burried in other method, so it's hard to
change style of the quoting. Extract it into a new method.
don't create DB if we run perl -c on a test file
Respect plain text display preferences for all plain text content

Attachments with filenames are never parsed with Text::Quoted, so the
passed in $Message content was never an array reference.  This caused
textual attachments to ignore the PlainTextPre and PlainTextMono
settings, the symptom of which is nigh unreadable text.  Moving those
preferences out of the conditional corrects the display.  Now every call
to ShowMessageStanza with a text/plain content type will result in a
<div class="message-stanza">, which may be white-space preserving and/or
wrapped in a <pre>.
make login inputs the same length especially for ie8/9.

see also #17159
Allow mailto: links in HTML

This is useful for HTML email which includes linked email addresses and
also search formats which want to use a value in a mailto: link for
convenience.  There is no harm in mailto: links.
An invalid "results=" parameter is not a CSRF threat

Since results keys are removed from the session once they're used,
refreshing a page with a results= parameter would throw up the CSRF
interstitial.  That behaviour is almost as bad as a browser asking if
you want to resubmit the POST data on refresh, which is the reason for
the MaybeRedirectForResults() framework in the first place.
Add callbacks for the mobile login form equivalent to the non-mobile form
test CF's context via UI

there was a bug that CF value was set to "no value" on submit if
CF rights are granted via queue and CF is not changed.
skip DB interaction in gpg tests during syntax check

RT::Test::GnuPG adds rights from 'sub import', skip it
during perl syntax check
ValuesClass was missing from *Accessible

it was changed from attribute to column
any false ValuesClass should be valid

RT::CustomField->ValidateValuesClass must allow "0" as
RT::Record->_Set replace undef value by 0
Fix CF ValuesClass update in web UI

* update only if needed
* display localized update result
tests around RT::CustomField->SetValuesClass

UI and API
Add documentation to RT::Action::ExtractSubjectTag
Cleanups and Clarification of new ExtractSubjectTag docs

Explain a little more about how it works (changing the Ticket), podify
in a few places and a few minor grammatical nits.
Pull down an update from Launchpad and re-export

This includes updates to Catalan by Ton Orga Ventura
that provide enough translations for us to ship it in core now.
Merge branch '4.0/dont-create-db-for-syntax-check' into 4.0-trunk
Exclude wasn't working with more than one record

This was generating (id != 7 OR id != 9) which gleefully returns both 7
and 9. Switch over to an ENTRYAGGREGATOR of AND. This is exposed in the
Membership page of Groups. Groups with one user had that user excluded
from the member autocomplete, but as soon as you have two members that
stopped working (same for groups).
Die when detecting SetHandler perl-script
Ensure that the error message is logged with newlines

die() is verridden somewhere in the stack to s/\n/\\n/g; this makes the
error message much less readable.

Use a direct call to $RT::Logger to ensure that newlines are preserved,
which also allows us to set the log level explicitly.  Not exiting via
die() requires that we handle providing the HTTP response by hand, which
also provides the opportunity to explicitly call out the
misconfiguration.