Add inverse class to properly display tab
/Elements/GnuPG moved to /Elements/Crypt
Call LifecycleObj to get the queue lifecycle object
Remove the install dep on Hook::LexWrap
Cleanly wrap CleanupRequest to flush our caches

Old code had us purge caches before core caches, so we'll maintain that
ordering.
Flush cache when _AddCustomFieldValue on a ticket

Override at the Ticket rather than Record level.
Note that this doesn't handle deleting an OCFV.
This also blows the cache on *any* CF change which is probably wrong.
EditCustomFields needs an object
Update ShowHistory location and pass Object
Call Attachments directly rather than old wrapper template
Update to modern ProcessObjectCustomFieldUpdates method name
Move MassageCustomFields callback

Since we're no longer using the deprecated
/Ticket/Elements/EditCustomFields, we need to hook in the correct place.
Without this, you get to edit Constituency twice, and one of them will
have all the values and then saving that will get horribly confusing.

During the move, rename arguments and quite a case sensitivity warning.
Rename callback after switch to /Elements/ShowHistory

Without this, our transaction skipping doesn't run.
This code needs some heavy analysis and to have the CustomFields cache
turned back on.
EscapeUTF8 was deprecated in 4.2, replace with EscapeHTML
More "Case sensitive search by" warnings

Found when running tests
Further LifecycleObj instead of Lifecycle updates

This should be the final round of these if I've grepped properly.
RT 4.2 removed ClassifySQLOperation

Its only core use was a similar check for negativity so steal the core
code from 43710e2a and use it here.
RT 4.2 introduced improved attachment handling

The largest change was that rather than using $session{'Attachments'} RT
now uses a per-form token to store attachments.  The old code which
would delete from session{'Attachments'} and manually pass to
ProcessUpdateMessage is unnecessary, as is the manual session frobbing
perpetrated by RTIR/Create.html:ProcessAttachments.  We can just delete
that code and make RTIR use the core ProcessAttachments code.

The only complexity comes on bulk-update pages where we now pass
KeepAttachments and then manually delete the relevant attachments after
we're done.

This code does not touch the attachment handling in ScriptedActions.

This core code change also seems to clear the way for our "Create
Incident AND Launch Investigation" workflow to support attachments on
both tickets being created.  Ticket #29745 has been created to track
this possible feature.
Attachment handing on ScriptedActions

I'm not fully convinced of the code that handles incident creation
followed by investigation spawning, but I'm also not sure of how well it
worked in 3.0.  This bears further testing as part of the work to better
document and explain Scripted Actions

Also in here is a change to the path of SelectTemplate and the need to
pass a Queue Object.  I've omitted Name since that's defaulted in
SelectTemplate.
Wrap ACLEquivalenceObjects for tickets

Primary purpose of this method is to return two queues in the case that
an Incident has a Constituency CF of EDUNET and the queue Incides - EDUNET
exists.

It has a lot of complexity to avoid running on non-IR queues
and to try and cache whenever possible (although we no longer have a
negative cache because of 1200cb16 which doesn't note the bug it fixes).

While removing Hook::LexWrap and changing to return more traditionally,
I also added a number of comments to document what I understand it to be
doing and to note a few things that concern me and that can possibly be
removed/cleaned up after tests pass.
Docs about what/why the AutoOpen override exists.

We need to make sure that this behavior is docced in the Administrator's
guide and think about cleaner ways to handle wanting two of our Queues
to override a global Scrip.