Reorganize to reduce number of variables used
When formatting days in iCal, do so in the user's timezone
show customized rights below their _corresponding_ categories

before, if people add new rights(with new categories) by calling
RT::System::AddRights and RT::System::AddRightCategories, all of them would be
listed below 'Miscellaneous' tab, which is not right.

new right categories will be listed alphbetically after core categories but
before 'Miscellaneous'

uninitialized warnings are also fixed.

see also #23158
Fix eroneous "<blank>" display in default searchbuilder format
clean up global BrandedSubjectTag, which we missed in 3.9.7 upgrade script
Support braceless subcolumn syntax (CF.Foo) when fetching column map values

For simple subcolumns without spaces or other special chars, "CF.Foo"
now works.  Previously the simplest accepted syntax was "CF.{Foo}".  The
most complex syntax remains "'__CF.{Foo Bar}__'".
Link the title of the ticket "People" box when Watch/WatchAsAdminCc are granted
Add docs for rt-crontool
no need 3.8-branded-queues-extension any more

because it's replaced by 3.9.7 upgrade content
Merge branch '4.0/delete-system-branded-subject-tag' into 4.0-trunk
add new callback before submit button
Merge branch '4.0/beforesubmit-callback' into 4.0-trunk
move upgrade script to the next free slot

The merge was after the 4.0.17 release.
This should have been part of 3a1c534.
Allow for a few more callbacks on the ticket Update page.

 - Most importantly, putting things after all of the existing elements.
Update self service ticket display to use MaybeRedirectForResults
like /Ticket/Display.html does.
Add MarkAsSeen functionality to Self Service

See [issues:26416]
Merge branch '4.0/move-misversioned-upgrade' into 4.0-trunk
Ensure that the Subject header is not double-encoded

In Encode 2.52 and below, `decode_utf8(...)` called on a string with the
internal utf8" flag (i.e. containing characters, not bytes) was a no-op.
Encode 2.53 changed this, for parity with `decode('utf8', ...)`

The contents of the 'Subject' header when sending mail were usually
bytes, as parsed by MIME-Tools.  As such, before adding the subject tag,
they were decoded into characters.  However, in the case where no
Subject was given by the template (for example, the "Transaction"
template), RT generated a (wide-character) string for the Subject based
on the ticket title, and inserted it into the MIME object.  Later,
before the subject tag was added decode_utf8() was called on this wide
string -- and prior to Encode 2.53, this was a no-op.

Ensure that the values placed in the MIME header are always bytes, and
not wide characters.  There are two changes to do this: first, ensure
that the automatically-generated subject is encoded before being used;
and second, that the string with the subject tag is re-encoded before
the header is set to it.
Merge branch '4.0/encode-2.53-support' into 4.0-trunk
Merge branch '4.0/ticket-update-callbacks' into 4.0-trunk

Closes github pull request #67