move helpers into RT::Test from a test file
validator: create Principal in force resolve mode

If principal is missing in {Group,User}->Principal relation then
user have two choices: delete pointing object or create
new principal record. It was decided to do nothing in auto-force
-resolve mode. However, absent principal means that $group->Disabled
returns undef and we use that call in other places. undef may cause
infinite loop while trying to restore other records, for example CGM.

prompt_action is only used in this place, so it's ok to change its
behavior.
test edge case in validator
Add a timeout to prevent failing inifite loop tests from hanging forever
Fix precedence errors found by perl 5.19.4 of return ... or ...
Cwd::realpath("/nonexistant") on 5.19.4 returns undef
Catch and warn about template compilation errors

RT warns when saving a template which fails to compile (for example, due
to improperly closed braces).  However, if this warning is ignored (or
the template was imported by hand from initialdata), the only hint as to
this came at the debug level:

    [debug]: Skipping Scrip #7 because it didn't Prepare

Make the template compilation error explicit, and show which template
contains the error.
Account for new compilation warning
Allow member addition in initialdata
Ensure that panes are displayed in a stable order

'keys' on a hash is no longer stable in recent versions of Perl.  As
such, the display order of the panes (as pushed onto @panes at the end
of the block) was no longer stable.  This caused the Sidebar and Body
sections to randomly flip back and forth as a portlet was moved up and
down in them, or other edits were made.

Sort the panes by name, to ensure consistent display order.
Add Date and DateTime CFs to bulk update

Date conversion is needed only for delete because AddValueForObject
in RT::CustomField calls CanonicalizeValue methods to handle
conversion on add.

For Date and DateTime, pass undef for Default to assure that we
don't incorrectly imply that there will be a default value set
if the box is left empty. This inconsistency has been resolved in
4.4 via 4.4/date-input-keep-value

@values is checked for length, otherwise empty string values
are submitted for empty fields resulting in update messages
noting "Not set changed to Not set".
Merge branch '4.0/stable-dashboard-edit' into 4.0-trunk
The subroutine ref is called handle, not handler.

This has been wrong since the docs added in 7252c037.
The code was merged into core in b426cccd.  The commit doesn't say where
it merged from, so I can't go further.
Merge branch '4.0/add-date-datetime-to-bulk-update' into 4.0-trunk
New doc for writing RT extensions
Merge branch '4.0/writing-rt-extensions-doc' into 4.0-trunk
Ensure that the query is re-run after a bulk update

While the CollectionList at the top of the Bulk Update re-runs the query
after an update (by dint of being passed the TicketSQL and not
$Tickets), the BulkLinks collection is not so lucky.  As such, it
contains the data from before the update was applied.

However, this can lead to internal inconsistency -- namely, if the
tickets were deleted, Count on $Tickets will return the old cached
value, while ->Next will skip the newly-deleted tickets.  This causes
BulkLinks to error out with "Can't call method "DependsOn" on an
undefined value", as it assumes ->Next will be true if ->Count was.

Ensure that the $Tickets collection is re-run if a bulk update was made.
allow to toggle off cf's textarea and input sizes if $Cols/$Rows are set to undef

we have default $Cols/$Rows in /Element/EditCustomFields, so it doesn't help
much in core for now, but this gives customers the flexibility to toggle off
the size/cols/rows html attributes for some custom fields, e.g.

    <& /Elements/EditCustomField, ..., Cols => undef &>
Make it possible to use Simplesearch with a different placeholder text

While RT uses Search, RTIR wants to use Search incidents
Merge branch '4.0/simplesearch-placeholder-text' into 4.0-trunk