send_via_mailgate's return should act like send_via_mailgate_and_http

a7a0e02c switched to call RT::Interface::Email::Gateway rather than
using bin/rt-mailgate; however, it returned 0/1/-75 for
failure/success/tmpfail instead of the exit code ($?).  Since all
callsites shifted the return code by 8 and accepted 0 as "success," all
calls succeeded.

Fake a $?-like return code from send_via_mailgate; left-shifted 1 for
failure, left-shifted -75 for temporary failure, and 0 for success.

Fixes I#19156.
Make TSVExport work on non-Tickets collections

a8232c75 attempted to refactor the existing /Search/Results.tsv into a
generic /Elements/TSVExport which took arbitrary collection objects.
However, it neglected to pass the class of the collection down through
to the ColumnMap code, causing it to only work on Tickets, or things
like CustomFields which are generally applicable across object classes.

Intuit the class as necessary, and pass it down through to the ColumnMap
code.
Convert a call to the deprecated _SQLLimit function to Limit
Implement ModifyMaxResults callback

This adds the ModifyMaxResults callback, which permits changing the
maximum number of results returned in Groups, Owners, Users and Tickets
autocomplete endpoints.
AddRoleMember/DeleteRoleMember is now in RT::Record::Role::Roles; update POD
Merge branch '4.2/sqllimit-to-limit' into 4.2-trunk
Don't hide AllowLoginPasswordAutoComplete option as a 'password'

Fixes: #30417
Merge branch '4.2/tsv-export-class' into 4.2-trunk
Avoid invoking the shell when both signing and encrypting a message

When a request came in to sign *and* encrypt, we joined the openssl
invocation to sign together with the openssl invocation to encrypt using
a pipe.  This caused run3 to invoke the shell (because of shell
metacharacters).  This leaves RT vulnerable to CVE-2014-7169,
CVE-2014-7186, CVE-2014-7187, CVE-2014-6277, CVE-2014-6271 collectively
known as "Shellshock."  Because it requires both signing and encryption,
this vulnerability is only exploitable with an unpatched bash, and by
privileged users. CVE-2014-7227 has been assigned for this
vulnerability.

Switch to using the list form of run3 which avoids any use of the shell.

To emulate the pipe, use a loop which takes the STDOUT in $out from the
signing and hands it back to the encryption run as $buf.  The final
output will then be put back into $buf to be returned upstream and
mailed out.
Fix the 4.2.7 upgrade to run on Oracle (and copy to 4.2.8)

The "Content" column of the Attributes table is a CLOB column on Oracle;
this makes it impossible to use the '=' operator on it.  Instead, check
the length of the contents, which works across databases and column
types.

The upgrade step is copied to 4.2.8, though only enabled on Oracle, to
catch those users who upgraded to 4.2.6 and for whom the upgrade step
errored out.  For Oracle users who upgrade from before 4.2.6 up to
4.2.8, the 4.2.8 step will be a no-op.

Fixes I#30391.
Merge branch '4.2/oracle-upgrade-empty-clob' into 4.2-trunk
Merge branch 'security/4.2/smime-shellshock' into security/4.2.8-releng
Updated translations from Launchpad
Merge branch 'security/4.2.8-releng' into 4.2-trunk
Merge branch '4.2/test-mailgate-return' into 4.2-trunk
Properly check the return code of send_via_mailgate

8da874c9 changed send_via_mailgate to return a status code, as if it had
run bin/mailgate by hand.  As such, success is a 0 value, and failure
values are determined by right-shifting.
Adjust the alignment to line up the two labels