Stop defaulting the due date to the creation time in REST

If no DefaultDueIn existed on queue 1, the due date was set to the
current date and time.  Only provide a Due date if DefaultDueIn was set.
Send dates back to the user in the user's own timezone

Resolves issues #20334
Perform user/group searches case-insensitively

Fixes I#27835.
Fix indentation
Don't alter @statuses when escaping

The existing line to escape statuses altered @statuses in the process,
causing ->IsValid() to return false on the escaped versions, and thus
failto display any statuses which contained quotes or slashes.  Store
the escaped versions in a different variable, to ensure that un-escaped
status names are passed around everywhere, and only escape them
as-needed.

Fixes I#29056.
Stop caching when serializing and importing

9b26694d and ba372275 rightly realized that using
DBIx::SearchBuilder::Record::Cachable was large memory and performance
detriment when serializing and importing.  Unfortunately, their changes
were unsufficient to prevent it, as RT::Record is loaded (and its "use
base" is set) during compile-time when
RT::Migrate::Serializer::IncrementalRecord is loaded.  As such, setting
RecordBaseClass at run-time is too late.

Instead, explicitly alter the inheritance of RT::Record at run-time, to
avoid the complexity of ensuring that RT::Record is not loaded until
"late enough."
Skip building a giant "seen" hash if cloning

There is no reason to build the "seen" hash if we simply ignore it;
instead, simply skip directly to the Visit code.
Ensure that _SignEncrypt always returns ($buf, %hash)

This return point omitted the undef buffer, causing the hash assignment
in the calling site to be off by one.

Fixes I#30436.
Update the error message to use the name of the field that is displayed

Fixes I#30435.
make it possible to group charts by priority
Merge branch '4.2/rest-default-due' into 4.2-trunk
Merge branch '4.2/chart-by-priority' into 4.2-trunk
Clarify wording or Organization update in validator
Tell admins to analyze their indexes after a restore

Otherwise the Postgres planner may make some crazy estimates and perform
poorly.
Merge branch '4.2/serializer-leaks' into 4.2-trunk
Merge branch '4.2/smime-missing-signing-key' into 4.2-trunk
Merge branch '4.2/saved-search-locstring' into 4.2-trunk
Merge branch '4.2/watcher-insensitive' into 4.2-trunk
When possible, switch to IN or NOT IN rather than multiple OR'd clauses

DBIx::SearchBuilder 1.63 began allowing the IN and NOT IN operators; RT
4.0 could not immediately make use of them because it did depend on a
high enough version of DBIx::SearchBuilder.  RT 4.2, however, depends on
DBIx::SearchBuilder 1.65, and thus can use IN freely; this is
advantagous because query planners can make better choices with IN than
with long boolean queries.

Unfortunately, DBIx::SearchBuilder 1.65 does not respect the
CASESENSITIVE => 0 option when passed OPERATOR => 'IN'.  This is only an
issue on the limits for Group.Name, which must be case-insensitive.  To
work around this, pass FUNCTION => 'LOWER(?)', VALUE => [an lc'd list],
and CASESENSITIVE => 1.  The former two deal with making the search
case-insensitive, while the latter quiets the warnings which attempt ot
detect case-sensitive searches on Group.Name.

This also rewrites two queries in GetForwardAttachments into one, using
a simple JOIN.
increase size of input for template name

There exists template names that are too long to be completely displayed
when the size of this input is 20. Instead of going to to the next
arbitrary multiple of 20, go directly to 80 to match the Description and
Content size.